2013-07-18 32 views

Odpowiedz

11

Jeśli chcesz zamówić, musisz użyć zestawu NSOrderedSet.

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

być również pewien, że to jest naprawdę to, co chcesz. NSOrderedSet jest używany przede wszystkim z CoreData i chociaż może być używany gdzie indziej, zwykle NSArray będzie działał dobrze dla ciebie. http://nshipster.com/nsorderedset/ –

+3

Tak, głównym powodem użycia uporządkowanego zestawu byłoby to, że wpisy byłyby unikalne (duplikaty usunięte), ale zachowałbyś kolejność pozostałych elementów. – rdelmar

2

Jeśli zależy Ci na zamówieniu, prawdopodobnie nie chcesz używać NSSet.

-1

Jest to rozwiązanie dla Swift 3:

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

Czy możesz wyjaśnić, w jaki sposób ma to pomóc w zapełnieniu NSSet uporządkowaną strukturą elementów? –

+0

W moim przypadku, kolejność w NSMutableArray jest zachowywana po konwersji na NSSet –

+0

Ale dokładnie chcę po prostu zrozumieć mechanizm za tym. Ponieważ jest to nietypowe dla gwarancji porządku, gdy wypełniamy zawartość NSSet w postaci NSArray. A więc zapełnianie od NSMutableArray różni się od zapełniania NSSet i czy to właśnie dlatego? –