How to convert NSSet to [String] array?

I have an NSSet of strings and I want to convert it to [String]. How to do it?

+7
swift nsset swift-array
source share
4 answers

I would use map :

 let nss = NSSet(array: ["a", "b", "a", "c"]) let arr = nss.map({ String($0) }) // Swift 2 let arr = map(nss, { "\($0)" }) // Swift 1 

Swift 2

Swift 1

+11
source share

If you have Set<String> , you can use the Array constructor:

 let set: Set<String> = // ... let strings = Array(set) 

Or, if you have an NSSet, there are several different options:

 let set: NSSet = // ... let strings1 = set.allObjects as? [String] // or as! let strings2 = Array(set as! Set<String>) let strings3 = (set as? Set<String>).map(Array.init) 
+4
source share
 let set = NSSet(array: ["a","b","c"]) let arr = set.allObjects as! [String] 
+2
source share

You can do something like this.

 let set = //Whatever your set is var array: [String] = [] for object in set { array.append(object as! String) } 
+1
source share

All Articles