【发布时间】:2010-09-26 03:40:40
【问题描述】:
迁移后,我的一个本应为非零的数值现在显示为零。如果我不迁移,该值将保留其非零值。
我首先尝试在托管对象中设置一个数值,如下所示:
[temp setNumUses:temp.numUses+1];
...但这导致了“EXC_BAD_ACCESS”,所以我将其更改为:
int hold = ((int)[[temp valueForKey:@"numUses"] intValue]);
hold++;
[temp setNumUses:[[NSNumber alloc] initWithInt:hold]];
...但是在迁移之后,这段代码声称hold在运行新代码之前被初始化为一个值为0的int,而它的值显然是1或更大(指的是仅使用的测试对象1 次)。
当我不迁移核心数据数据库时,NSNumber 通过许多上下文保存和应用程序终止保持其价值。
我可能缺少什么?我有一些广泛的代码可以修改存储在其他地方的数据库中更改的 NSManagedObjects 的值,但没有一个会篡改“numUses”。
想法?
【问题讨论】:
标签: objective-c core-data migration exc-bad-access nsnumber