我正在尝试更新我在coredata中的NSObject类值但是我不确定如何只更新整个对象。这就是我想要做的事情
for (Items *item in mutableArrayOfSet) {
if ([updatedItem.rowID isEqualToString:item.rowID]) {
item = updatedItem;
}
}
item是我的非upated Item和updatedItem属于同一个NSObject类类型,我试图用它来覆盖集合中的当前项目...但是这行代码
item = updatedItem;
发出错误。
默认情况下,无法在ARC中修改快速枚举变量;声明变量__strong以允许此
答案 0 :(得分:1)
item = updatedItem;
这只是设置迭代变量的值,它不会改变mutableArrayOfSet
的任何内容。
您应该做的是在迭代时创建一组更改,然后在迭代完成后将这些更改保存到源对象中。
答案 1 :(得分:0)
您可以做的是不使用快速枚举。使用普通for
循环:
for (int i=0; i<mutableArrayOfSet.length; i++)
{
item = [mutableArrayOfSet objectAtIndex:i];
....
[mutableArrayOfSet replaceObjectAtIndex:i withObject:updatedItem];
}
答案 2 :(得分:0)
为什么不按编译器的建议去做?
for (__strong Items *item in mutableArrayOfSet) {
if ([updatedItem.rowID isEqualToString:item.rowID]) {
item = updatedItem;
}
}