下面是一段代码,其中列举了NSMutableArray *myArray
并修改其中的每个NSMutableDictionary
。我用这段代码看到的问题是它在枚举时正在修改。在枚举时修改NSMutableArray中的NSDictionary项目的正确方法是什么?
代码:
for (NSMutableDictionary *aDict in myArray)
{
theDate = [self convertTheDate:[aDict valueForKey:@"date"]];
[aDict setValue:theDate forKey:@"date"];
}
[self passUpdatedDates:myArray];
我应该如何修改这个是安全的代码?
这完全没问题,因为你并没有改变阵列本身。 – vikingosegundo
仅供参考 - 您不应该使用'valueForKey:'或'setValue:forKey:'。除非明确需要键值编码(KVC),否则使用'objectForKey:'和'setObject:forKey:'。 – rmaddy
您可以在枚举数组的同时将其中一个内容对象修改为心脏的内容,只要您不在枚举的数组中替换旧对象。 –