如何将NSSet转换为[String]数组?

noo*_*mer 7 nsset swift swift-array

我有一个NSSet of Strings,我想把它转换成[String].我怎么做?

aya*_*aio 12

我会用map:

let nss = NSSet(array: ["a", "b", "a", "c"])

let arr = nss.map({ String($0) })  // Swift 2

let arr = map(nss, { "\($0)" })  // Swift 1
Run Code Online (Sandbox Code Playgroud)

斯威夫特2

斯威夫特1


jtb*_*des 9

如果您有Set<String>,则可以使用 Array 构造函数:

let set: Set<String> = // ...
let strings = Array(set)
Run Code Online (Sandbox Code Playgroud)

或者如果你有 NSSet,有几个不同的选项:

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)
Run Code Online (Sandbox Code Playgroud)