OGeek|极客世界-中国程序员成长平台

标题: ios - 移除对象时向不可变对象(immutable对象)发送变异方法错误 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 13:52
标题: ios - 移除对象时向不可变对象(immutable对象)发送变异方法错误

我想从数组中删除对象,但出现此错误。我找到了相关的问题,但无法得到。 请帮我。 我的代码是

NSArray *tripsArray= [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSMutableArray *myTripsArray = [tripsArray mutableCopy];
for (NSDictionary *dict in myTripsArray){
    if ([[dict valueForKey"state"] isEqualToString"undeployed"]){
        int index = [myTripsArray indexOfObject:dict];
        [myTripsArray removeObjectAtIndex:index];
    }
}



Best Answer-推荐答案


这是由于您正在迭代的数组,您正在从同一个数组中删除一个对象。

改变这一行:

for (NSDictionary *dict in myTripsArray)

到这里:

for (NSDictionary *dict in [myTripsArray copy])

这里我使用数组的副本进行迭代,使用原始的进行变异。

关于ios - 移除对象时向不可变对象(immutable对象)发送变异方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38125452/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4