Ho un NSSet di stringhe e voglio convertirlo in [String]. Come lo faccio?Come convertire NSSet in array [String]?
7
A
risposta
11
1
Si potrebbe fare qualcosa di simile.
let set = //Whatever your set is
var array: [String] = []
for object in set {
array.append(object as! String)
}
+0
questo ha reso la mia giornata –
2
let set = NSSet(array: ["a","b","c"])
let arr = set.allObjects as! [String]
4
Se si dispone di un Set<String>
, è possibile utilizzare la funzione di costruzione Array:
let set: Set<String> = // ...
let strings = Array(set)
O se avete NSSet, ci sono alcune opzioni differenti:
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)
veloci 2 - dice nsset non ha un metodo di mappa e il secondo mi obbliga a fare come! NSString - ma finisce per ottenere alcuni dynamicCastObjCClassUnconditional. Quindi nessuno dei due lavora per qualsiasi ragione – noobprogrammer
Works for me ([screenshot] (https://www.evernote.com/l/AFnfzlnodJtJBIq_wK4tRvGdoCwfTU5_2Ck)). Forse aggiornare Xcode? Sto usando 7b4. – Moritz
Ed ecco lo [screenshot] (https://www.evernote.com/l/AFmdJD9SvyVMYLxPtmGj9aRVz6TolnczF7Q) per la versione Xcode 6. :) – Moritz