这是一个非常简单的概念,但我没有得到我想要的结果。我有一个填充有 NSArray 的 NSMutableArray,我想遍历该 NSMutableArray 并根据键值对删除某些 NSArray。我的结果有许多我应该删除的 NSArray,我认为这与 NSMutableArray 的计数和我在 For 循环中声明的 int 有关。
这是我的代码:(restArray 是 NSMutableArray)
for (int i=0; i<restArray.count; i++) {
NSArray *array = restArray[i];
if ([[array valueForKey:@"restaurant_status"] isEqualToString:@"0"]) {
[restArray removeObjectAtIndex:i];
}
}
有人知道我在这里做错了什么吗?
最佳答案
不建议修改当前正在迭代的数组。
让我们创建一个 tmp 数组,然后反转您的逻辑。
NSMutableArray * tmpArray = [NSMutableArray array];
for (int i=0; i<restArray.count; i++) {
NSArray *array = restArray[i];
if (![[array valueForKey:@"restaurant_status"] isEqualToString:@"0"] {
[tmpArray addObject:array];
}
}
因此,在迭代结束时,您应该以拥有所需数组的 tmpArray 结束。
关于iOS:删除 For 循环中 NSMutableArray 中的 NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33218543/