什么是makeObjectsPerformSelector的快速等价物?

时间:2014-06-27 07:34:09

标签: ios xcode swift

在Objective-C中我使用此代码删除任何子视图:

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

但是如何在swift中使用它?我看到apple documentation在swift中使用该方法

func makeObjectsPerformSelector(_ aSelector: Selector)

但是当我尝试时,我收到错误:'AnyObject[]' does not have a member named 'makeObjectsPerformSelector'

有没有办法在swift中删除子视图?

3 个答案:

答案 0 :(得分:95)

更新了Swift 2.0(Xcode 7)

使用forEach

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

或者像这样:

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

答案 1 :(得分:0)

它仅适用于NSArray和NSMutableArray对象。

这将有效:

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

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

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

答案 2 :(得分:0)

从Xcode 7开始,swift中提供了完整的performSelector方法系列,包括makeObjectsPerformSelector()的{​​{1}}。