NSMutableArray:使用Array时init缺少数据

时间:2015-11-30 09:56:37

标签: ios objective-c nsmutablearray init

截图显示,有谁知道它的问题是什么?谢谢你的帮助!

enter image description here

4 个答案:

答案 0 :(得分:0)

您正在从正在迭代的数组中删除对象。 这可能会导致这样的错误。

您只需要替换

for (NSString *code in list)

with:

for (NSString *code in codeList)

答案 1 :(得分:0)

在你看来只是放codeList,你的问题就会得到解决。 检查一下我修改了你的方法。

-(NSArray *) checkVisibleCode:(NSArray *) codeList{
    NSMutableArray *list = [NSMutableArray arrayWithArray:codeList];
    for (NSString *code in codeList) {
        if (![self.codeMapping.allKeys containsObject:code]) {
            [list removeObject:code];
        }
    }
    return list;
}

答案 2 :(得分:-1)

在您对其进行迭代时,不要删除数组或字典或任何集合集中的对象。 迭代时保留要删除的索引,然后删除所有objets。您可以使用SupplierUpdateForm方法:

indexesOfObjectsPassingTest

答案 3 :(得分:-1)

您应该使用indicesOfObjectsPassingTest和objectsAtIndexes执行此操作:即使您按照例如Anbu的回复来使您的代码工作,此代码也在O(n ^ 2)中运行。使用100,000个对象的列表来执行此操作,其中每个第二个对象都被删除,并且您的应用程序死于可怕的死亡,因为它耗尽了CPU时间。