【发布时间】:2015-03-05 02:08:22
【问题描述】:
当名称相同时,我想从数组中删除对象。这该怎么做?提前致谢。这是我的代码
NSString *name1;
NSString *name2;
NSArray *copyArray = [uniqueArraySort copy];
for (NSMutableDictionary *dict1 in copyArray) {
for (NSDictionary *dict2 in uniqueArraySort) {
name1 = [dict1 valueForKey:@"name"];
name2 = [dict2 valueForKey:@"name"];
if ([name1 isEqualToString:name2]) {
NSLog(@"%@",uniqueArraySort);
[uniqueArraySort removeObject:dict2];
NSLog(@"%@",uniqueArraySort);
}
}
}
当我编译时出现此错误 <__nsarraym:> 在被枚举时发生了变异。'
【问题讨论】:
-
我试了还是报错
-
不要枚举。以“老式”方式遍历它,只向后执行,最后一个元素在前。
-
当然,你需要一个可变数组。
-
顺便说一句,这是一个糟糕的“骗子”。在某个地方有一个更好的。请参阅stackoverflow.com/a/18456913/581994 等人。
标签: ios objective-c nsdictionary nsmutabledictionary