xcode 什么是 makeObjectsPerformSelector 的 swift 等价物?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/24446372/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 05:08:25  来源:igfitidea点击:

What is the swift equivalent of makeObjectsPerformSelector?

iosxcodeswift

提问by yumugee

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 documentationto use that method in swift

但是如何快速使用它呢?我看到苹果文档在 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?

有什么方法可以快速删除子视图?

回答by rob mayoff

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 { 
let ar: NSArray = [obj1, obj2, obj3]
ar.makeObjectsPerformSelector("someSelector")
.removeFromSuperview() }

回答by Bruce1q

It only works on NSArray and NSMutableArray objects.

它只适用于 NSArray 和 NSMutableArray 对象。

This will work:

这将起作用:

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

Note that if you have an Array<AnyObject>you can freely convert to NSArrayand vise versa.

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

##代码##

回答by FizzBuzz

As of Xcode 7, the full family of performSelector methods are available in Swift, including makeObjectsPerformSelector()for NSArray.

从 Xcode 7 开始,Swift 中提供了完整的 performSelector 方法系列,包括makeObjectsPerformSelector()for NSArray.