2

我目前正在开发一个使用 CoreData 并且关系使用 NSSet 的项目。我目前有2个问题:

  1. 如何使用索引遍历 NSSet?--> 已解决

  2. 如何删除特定对象?=> 我想我需要迭代并检查对象?

嗯,看起来我添加对象也有问题?这有什么问题:

    [mySet setByAddingObject:info];

谢谢您的帮助。

mcb

4

1 回答 1

10

集合是一个无序的容器,这意味着您不能使用索引对其进行迭代。您可以使用[set allObjects]来获取一个数组,但请记住,每次执行代码时排序不会保持一致。因此,您可能希望在迭代之前对该数组进行排序,具体取决于您在做什么。

要删除一个对象,您必须拥有一个实例NSMutableSet并使用该removeObject:消息。如果您只有一个 NSSet 并希望创建一个删除某个项目的新集合,您将使用如下代码:

NSSet *mySet = /* ... */;
NSMutableSet *mutable = [NSMutableSet setWithSet:mySet];
[mutable removeObject:myObject];
于 2010-06-04T10:33:16.350 回答