xcode makeObjectsPerformSelector的快捷等价物是什么?

jq6vz3qz  于 2023-02-25  发布在  其他
关注(0)|答案(3)|浏览(118)

在Objective-C中,我使用下面的代码来删除任何子视图:

[self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];

但是如何在swift中使用呢?我看到苹果的文档中提到了在swift中使用这个方法

func makeObjectsPerformSelector(_ aSelector: Selector)

但是当我尝试的时候,我得到了一个错误:'AnyObject[]' does not have a member named 'makeObjectsPerformSelector'
在swift中是否有删除子视图的方法?

dxpyg8gm

dxpyg8gm1#

使用forEach

self.view.subviews.forEach { subview in
    subview.removeFromSuperview()
}

或者像这样:

view.subviews.forEach { $0.removeFromSuperview() }
zte4gxcn

zte4gxcn2#

它仅适用于NSArray和NSMutableArray对象。
这将工作:

let ar: NSArray = [obj1, obj2, obj3]
ar.makeObjectsPerformSelector("someSelector")

请注意,如果您有Array<AnyObject>,则可以自由转换为NSArray,反之亦然。

let anNSArray: NSArray = anArrayOfAnyObject
anNSArray.makeObjectsPerformSelector( "someSelector")
qcbq4gxm

qcbq4gxm3#

从Xcode 7开始,Swift提供了performSelector方法的完整家族,包括makeObjectsPerformSelector()NSArray

相关问题