2010-06-04 68 views
2

我目前正在使用CoreData和關係正在使用NSSet的項目。我目前有2個問題:NSSet問題(刪除對象和迭代)

  1. 如何使用索引迭代NSSet? - >已解決

  2. 如何刪除特定對象? =>我想我需要迭代並檢查對象?

hmm看起來像我也有問題添加一個對象?什麼是錯與此:

[mySet setByAddingObject:info]; 

感謝您的幫助。

MCB

回答

10

一組是無序的容器這意味着使用索引不能遍歷它。您可以使用[set allObjects]來獲取數組,但請記住每次執行代碼時排序不會一致。因此,您可能需要在迭代之前對該數組進行排序,具體取決於您在做什麼。

要刪除一個對象,你必須有一個實例NSMutableSet並使用removeObject:消息。如果你只有一個NSSet中並希望創建一組新的,移除了某個項目,你可以使用這樣的代碼:

NSSet *mySet = /* ... */; 
NSMutableSet *mutable = [NSMutableSet setWithSet:mySet]; 
[mutable removeObject:myObject]; 
+0

感謝,我也可以把它恢復成正常的NSSet,或將MYSET =可變工作? – eemceebee 2010-06-04 10:39:41

+1

mySet = mutable將會起作用。 – 2010-06-04 10:42:26

+2

請注意,枚舉集時不允許刪除對象。 – 2012-03-05 10:29:22