What is the fast equivalent of makeObjectsPerformSelector?

In Objective-C, I use this code to remove any subviews:

[self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; 

But how to use it quickly? I saw apple documentation to use this method in quick

 func makeObjectsPerformSelector(_ aSelector: Selector) 

but when I try, I get the error message: 'AnyObject[]' does not have a member named 'makeObjectsPerformSelector'

Is there a way to remove a submenu in swift?

+33
ios xcode swift
Jun 27 '14 at 7:34
source share
3 answers

Updated for Swift 2.0 (Xcode 7)

Use forEach :

 self.view.subviews.forEach { subview in subview.removeFromSuperview() } 

Or like this:

 view.subviews.forEach { $0.removeFromSuperview() } 
+82
Jun 27 '14 at 7:37
source share

It only works with NSArray and NSMutableArray objects.

This will work:

 let ar: NSArray = [obj1, obj2, obj3] ar.makeObjectsPerformSelector("someSelector") 

Please note that if you have an Array<AnyObject> , you can freely convert to NSArray and vice versa.

 let anNSArray: NSArray = anArrayOfAnyObject anNSArray.makeObjectsPerformSelector( "someSelector") 
0
Jun 27 '14 at 7:57
source share

Starting with Xcode 7, the complete family of performSelector methods is available in Swift, including makeObjectsPerformSelector() for NSArray .

0
Jul 21 '15 at 19:54
source share



All Articles