[英]What is the swift equivalent of makeObjectsPerformSelector?
In Objective-C I'm using this code to remove any sub-views: 在Objective-C中,我使用以下代码删除所有子视图:
[self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
But how to use it in swift? 但是如何迅速使用它呢? I saw apple documentation to use that method in swift
我看到苹果文档迅速使用了该方法
func makeObjectsPerformSelector(_ aSelector: Selector)
but when I try it, I get an error: 'AnyObject[]' does not have a member named 'makeObjectsPerformSelector'
但是当我尝试它时,出现错误:
'AnyObject[]' does not have a member named 'makeObjectsPerformSelector'
Are there any ways to remove sub-views in swift? 有什么方法可以快速删除子视图?
Use forEach
: 用于
forEach
:
self.view.subviews.forEach { subview in
subview.removeFromSuperview()
}
Or like this: 或像这样:
view.subviews.forEach { $0.removeFromSuperview() }
It only works on NSArray and NSMutableArray objects. 它仅适用于NSArray和NSMutableArray对象。
This will work: 这将起作用:
let ar: NSArray = [obj1, obj2, obj3]
ar.makeObjectsPerformSelector("someSelector")
Note that if you have an Array<AnyObject>
you can freely convert to NSArray
and vise versa. 请注意,如果您有
Array<AnyObject>
,则可以自由转换为NSArray
,反之亦然。
let anNSArray: NSArray = anArrayOfAnyObject
anNSArray.makeObjectsPerformSelector( "someSelector")
从Xcode 7开始,在Swift中可以使用完整的performSelector方法系列,包括用于NSArray
makeObjectsPerformSelector()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.