2013-07-18 45 views

回答

11

如果你想要訂購,你將不得不使用NSOrderedSet。

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

另外要知道這是你真正想要的東西。 NSOrderedSet主要與CoreData一起使用,雖然它可以在其他地方使用,但通常NSArray會爲你工作得很好。 http://nshipster.com/nsorderedset/ –

+3

是的,使用有序集合的主要原因是條目將被獨佔(刪除重複項),但是您仍然會保留剩餘項目的順序。 – rdelmar

2

如果您關心訂單,您可能不想使用NSSet。

-1

沒有爲斯威夫特3解決方案:

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

你能解釋一下這將如何幫助用有序元素結構填充NSSet? –

+0

在我的情況下,NSMutableArray中的順序在NSSet轉換後保留 –

+0

但正是我只是想了解背後的機制。因爲當我們填充NSArray的NSSet表單內容時,它對於保證順序非常不尋常。那麼從NSMutableArray填充不同於從NSSet填充的NSMutableArray,如果它是爲什麼呢? –

相關問題