2

我有一个NSSet包含四个NSStrings。如果我打电话-containsObject:查看是否NSSet包含某个字符串,是否可以删除NSSet等于我刚刚检查的字符串的条目?

如果我的问题没有意义,可能是因为使用 aNSSet可能是解决此问题的错误方法。

我有四个NSStrings,想把它们放在某种组中(集合、数组等)。然后我想检查另一个是否与组中的NSString任何NSStrings 匹配。NSString如果组内的和 a之间存在匹配NSString,我希望能够删除NSString组内的匹配。这可能吗?

4

5 回答 5

7

假设您的集合是*mySet并且您要删除的对象是objectToRemove。然后你可以这样做:

NSMutableSet *mutableSet = [NSMutableSet setWithSet:mySet];
[mutableSet removeObject:objectToRemove];
mySet = mutableSet;
于 2012-05-28T14:40:34.367 回答
1

看看NSMutableSetremoveObject:方法。

于 2012-05-28T14:34:26.483 回答
1

由于NSSets是不可变的,因此您无法在初始化后更改它们。使用NSMutableSetwhich 具有removeObject:移除对象的方法

于 2012-05-28T14:35:14.113 回答
1

这不是这个世界的东西,程序员经常引用。但是你需要 NSMutableSet 或 NSMutableArray 而不是 NSSet 或 NSArray。因为只有可变集合在创建后才能被更改。

您使用..从 NSMutableArray 中删除任何对象[myArray removeObject:yourObject];

同样对于 NSMutableSet [mySet removeObject:yourObject];

于 2012-05-28T14:38:13.407 回答
1

您可以在 NSMutableArray 上使用以下代码来删除对象的第一次出现。

[myArray removeObjectAtIndex:[myArray indexOfObject:myObject];
于 2012-05-28T15:01:56.283 回答