2010-06-04 67 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