2009-07-29 17 views
15

有什麼區別?NSMutableSet vs NSMutableArray

在我的上下文中,我需要能夠動態添加和刪除對象。用戶單擊檢查和關閉的表的行,從而添加或從列表中刪除引用的對象。

一個瘋狂的猜測是數組已索引項目,而設置沒有索引?

+0

感謝您的評論! – Brenden 2009-07-30 16:01:12

+1

請確保upvote幫助你的答案,而不是留下評論。 – amattn 2009-07-30 20:21:47

回答

29

一個NSSet/NSMutableSet不保留任何特定順序的項目。 NSArray/NSMutableArray確實按特定順序存儲項目。如果你正在建立一個表格視圖,你應該使用一個數組作爲你選擇的數據源。

+0

此外,如果順序無關緊要,並且您經常詢問某個特定項目是否屬於該組,則使用「NSSet」而非「NSArray」會更有效率。 – GoRoS 2014-04-11 06:43:24

23

此外,NSMutableSet確保所有對象都是唯一的。

NSMutableArray與UITableView相得益彰,因爲元素具有索引,因此您可以返回[array count]以獲取錶行數,或[array objectAtIndex:rowNumber]輕鬆地將元素與行相關聯。

3

此外,根據the documentation,NSSets測試對象成員關係更快。

可以使用集作爲替代陣列時 元素的順序是不是在測試對象 是否被包含在所述一組重要和性能是一個考慮因素,而陣列是有序的, 測試成員資格比集合要慢。

0

那麼有三個主要的區別。 1)集合是無序的2)沒有索引& 3)不能有重複的值,其中數組被定購,索引&可以存儲重複值。