2013-07-18 10 views

risposta

11

Se si desidera ordinare, è necessario utilizzare un set NSO.

NSOrderedSet *set = [NSOrderedSet orderedSetWithArray:theArray]; 
+2

anche essere sicuro che questo è veramente quello che vuoi. NSOrderedSet viene utilizzato principalmente con CoreData e, sebbene possa essere utilizzato altrove, solitamente NSArray funzionerà perfettamente per te. http://nshipster.com/nsorderedset/ –

+3

Sì, il motivo principale per utilizzare un set ordinato sarebbe che le voci sarebbero univoche (i duplicati rimossi), ma si manterrebbe comunque l'ordine degli articoli rimanenti. – rdelmar

2

Se ti interessa l'ordine, probabilmente non vuoi utilizzare un NSSet.

-1

V'è la soluzione per Swift 3:

let mutableArray : NSMutableArray! 
// Use type NSObject or any custom type 
let set = NSSet(array: mutableArray as NSArray as! [NSObject]) 
+0

Puoi spiegare come questo aiuterà a popolare l'NSSet con una struttura di elementi ordinata? –

+0

Nel mio caso, l'ordine in NSMutableArray viene conservato dopo la conversione su NSSet –

+0

Ma esattamente voglio solo capire il meccanismo dietro questo. Perché è insolito per una garanzia di ordine quando stiamo popolando NSSet dal contenuto di NSArray. Quindi popolamento da NSMutableArray diverso da quello popolato da NSSet e se è il motivo? –