如何以編程方式執行此操作?使用相同的順序將NSMutableArray轉換爲NSSet
我被告知這是這樣做的,但有不同的順序。
NSSet *set = [NSSet setWithArray:theArray];
有什麼想法嗎?
在此先感謝。
如何以編程方式執行此操作?使用相同的順序將NSMutableArray轉換爲NSSet
我被告知這是這樣做的,但有不同的順序。
NSSet *set = [NSSet setWithArray:theArray];
有什麼想法嗎?
在此先感謝。
如果你想要訂購,你將不得不使用NSOrderedSet。
NSOrderedSet *set = [NSOrderedSet orderedSetWithArray:theArray];
另外要知道這是你真正想要的東西。 NSOrderedSet主要與CoreData一起使用,雖然它可以在其他地方使用,但通常NSArray會爲你工作得很好。 http://nshipster.com/nsorderedset/ –
是的,使用有序集合的主要原因是條目將被獨佔(刪除重複項),但是您仍然會保留剩餘項目的順序。 – rdelmar
如果您關心訂單,您可能不想使用NSSet。
沒有爲斯威夫特3解決方案:
let mutableArray : NSMutableArray!
// Use type NSObject or any custom type
let set = NSSet(array: mutableArray as NSArray as! [NSObject])
你能解釋一下這將如何幫助用有序元素結構填充NSSet? –
在我的情況下,NSMutableArray中的順序在NSSet轉換後保留 –
但正是我只是想了解背後的機制。因爲當我們填充NSArray的NSSet表單內容時,它對於保證順序非常不尋常。那麼從NSMutableArray填充不同於從NSSet填充的NSMutableArray,如果它是爲什麼呢? –
您使用的NSSet時,順序並不重要... – rocky