0

我有一个存储正在购买的项目字符串的数组。他们可能会买两个相同的东西。当我使用下面的 if 语句时,它会删除该字符串的所有实例,而我只需要删除一个。请帮忙。

Singleton *shared = [Singleton sharedManager];
if ([shared.array2 containsObject:string2]) {
        [shared.array2 removeObject:string2];
    }
4

3 回答 3

1
NSUInteger index = [shared.array2 indexOfObject:string2];
if (index != NSNotFound) {
   [shared.array2 removeObjectAtIndex: index];
}
于 2013-10-27T19:39:58.017 回答
0

NSArray 有一个调用方法,该方法indexOfObject将返回对应数组值等于 anObject 的最低索引,或者NSNotFound如果没有找到这样的对象。只需获取索引并调用removeObjectAtIndex它将删除第一个找到的匹配对象。

于 2013-10-27T19:40:42.227 回答
-1

将NSArray转换为NSSet很简单。NSSet不允许存储重复的对象。

它会自动删除重复的对象。下面的代码我们将使用修复这个问题。

NSSet * set = [NSSet setWithArray:NSArray(instance here)];
于 2013-10-28T08:10:40.460 回答