需要从可能具有重复项的数组中仅删除一个字符串

时间:2013-10-27 19:33:28

标签: ios arrays ios7

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

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

3 个答案:

答案 0 :(得分:1)

NSUInteger index = [shared.array2 indexOfObject:string2];
if (index != NSNotFound) {
   [shared.array2 removeObjectAtIndex: index];
}

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

简单只是隐藏 NSArray NSSet NSSet 不允许存储重复的对象。

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

NSSet * set = [NSSet setWithArray:NSArray(instance here)];