我有一个数组,用于存储正在购买的商品字符串。他们可能会购买两件相同的东西。当我使用下面的if语句时,它会删除该字符串的所有实例,我需要它才能删除一个。请帮忙。
Singleton *shared = [Singleton sharedManager];
if ([shared.array2 containsObject:string2]) {
[shared.array2 removeObject:string2];
}
答案 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)];