什么是makeObjectsPerformSelector的快速等价物?
在Objective-C中,我使用下面的代码来删除任何子视图:
[self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
但如何快速使用它? 我看到苹果文档在迅速使用该方法
func makeObjectsPerformSelector(_ aSelector: Selector)
但是当我尝试它,我得到一个错误: 'AnyObject[]' does not have a member named 'makeObjectsPerformSelector'
有没有什么方法可以快速删除子视图?
更新了Swift 2.0(Xcode 7)
使用forEach
:
self.view.subviews.forEach { subview in subview.removeFromSuperview() }
或者像这样:
view.subviews.forEach { $0.removeFromSuperview() }
它只适用于NSArray和NSMutableArray对象。
这将工作:
let ar: NSArray = [obj1, obj2, obj3] ar.makeObjectsPerformSelector("someSelector")
请注意,如果您有一个Array<AnyObject>
,则可以自由转换为NSArray
,反之亦然。
let anNSArray: NSArray = anArrayOfAnyObject anNSArray.makeObjectsPerformSelector( "someSelector")
从Xcode 7开始,完整的performSelector方法系列在Swift中可用,包括NSArray
makeObjectsPerformSelector()
。