简体   繁体   English

makeObjectsPerformSelector的快速等效项是什么?

[英]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? 有什么方法可以快速删除子视图?

Updated for Swift 2.0 (Xcode 7) 已针对Swift 2.0(Xcode 7)更新

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM