我有NSSet
,其中包含四个NSString
个。如果我调用-containsObject:
来查看NSSet
是否包含某个字符串,是否可以删除NSSet
中与我刚检查的字符串相等的条目?
如果我的问题没有意义,可能是因为使用NSSet
可能是错误的方法来解决这个问题。
我有四个NSStrings
,并希望将它们放入某种类别(Set,Array等)中。然后,我想检查另一个NSString
是否与该组中的任何NSString
匹配。如果组内的NSString
和NSString
之间存在匹配,我希望能够删除组内的NSString
匹配。这可能吗?
答案 0 :(得分:7)
假设您的设置为*mySet
,您要删除的对象为objectToRemove
。然后你可以这样做:
NSMutableSet *mutableSet = [NSMutableSet setWithSet:mySet];
[mutableSet removeObject:objectToRemove];
mySet = mutableSet;
答案 1 :(得分:1)
查看NSMutableSet
和removeObject:
方法。
答案 2 :(得分:1)
由于NSSets
是不可变的,因此初始化后无法更改它们。使用NSMutableSet
方法removeObject:
删除对象
答案 3 :(得分:1)
这不是这个世界的事情,经常被程序员引用。但是,您需要NSMutableSet或NSMutableArray,而不是NSSet或NSArray。因为只有可变集合在创建后才能被更改。
使用.. [myArray removeObject:yourObject];
类似于NSMutableSet [mySet removeObject:yourObject];
答案 4 :(得分:1)
您可以在NSMutableArray上使用以下代码来删除第一次出现的对象。
[myArray removeObjectAtIndex:[myArray indexOfObject:myObject];