我有以下代码:
for (NSMutableDictionary *aDict in array)
{
// do stuff
[aDict setObject:myTitle forKey:@"title"];
}
我的问题是,如果
array
中充满了NSDictionary
对象,编写的for循环代码会自动将其转换为NSMutableDictionary
对象吗?还是我需要在这里做一些更具体的事情以确保在循环中不会在
unrecognized selector sent to instance
上收到setObject:forKey:
错误?
最佳答案
目前,这将给您您提到的错误。尽管使用可变字典设置了循环,但基础对象仍然是不可变的。您需要从中创建一个新词典。尝试这个
NSMutableArray *newArray = [NSMutableArray array];
for (NSDictionary *aDict in array)
{
NSMutableDictionary *mutable = [aDict mutableCopy];
// do stuff
[mutable setObject:myTitle forKey:@"title"];
[newArray addObject:mutable];
}
关于ios - 在for循环中将NSDictionary转换为NSMutableDictionary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23659614/