我有一个程序,我按如下方式保存int值:
client.oldId = [clientDict objectForKey:@"oldId"];
此时调试保存的值“假设”为31。
当我尝试使用上下文检索此项目时,我按如下方式检索它:
int oldId = [NSNumber numberWithInt:client.oldId];
它变成174806944,为什么会发生这种情况?,对于这个项目没有求和操作或类似的东西,在它保存到上下文之前就是31。
任何帮助都将不胜感激。
答案 0 :(得分:1)
在设置之前将变量设置为0
int oldId = 0
oldid = [NSNumber numberWithInt:client.oldId];
有时你可能会在内存位置得到垃圾而导致这种情况。
更新后的答案:虽然从技术上来说有时候我发现如果你不清除整数我会得到同样的东西。在这种情况下,他将int
设置为NSNumber
。正确的方法是采用NSNumber并得到它的integerValue
:
[client.oldId intValue]