在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中删除子视图?
答案 0 :(得分:95)
使用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}}。