提问人:user710502 提问时间:11/19/2013 更新时间:11/20/2013 访问量:55
从核心数据中保存和检索数据
Saving and retrieving data from core data
问:
我有一个程序,我在其中保存一个 int 值,如下所示:
client.oldId = [clientDict objectForKey:@"oldId"];
此时,调试时,“假设”保存的值为 31。
当我尝试使用上下文检索此项目时,我按如下方式检索它:
int oldId = [NSNumber numberWithInt:client.oldId];
它变得174806944,为什么会发生这种情况?,这个项目没有求和运算或类似的东西,就在它保存到上下文之前,它是 31。
任何帮助将不胜感激。
答:
1赞
logixologist
11/19/2013
#1
在设置变量之前,请将其设置为 0
int oldId = 0
oldid = [NSNumber numberWithInt:client.oldId];
有时,您可能会在内存位置出现垃圾,从而导致这种情况。
更新的答案:虽然从技术上讲,有时我发现如果你不清除整数,我会得到同样的东西。在本例中,他将 an 设置为 .正确的方法是获取 NSNumber 并得到它,如下所示:int
NSNumber
integerValue
[client.oldId intValue]
评论
0赞
user710502
11/19/2013
您好,谢谢,我尝试了这个仍然是相同的问题。这很奇怪
0赞
logixologist
11/19/2013
如果我看到的是 NSNumber(我假设)......为什么不这样做呢client.oldId
oldId = [client.oldId intValue]
0赞
user710502
11/19/2013
将尝试这些建议并在几分钟内回复,谢谢:)
0赞
Martin R
11/19/2013
@logixologist:您应该使用 使用正确的代码更新您的答案。(在为其赋值之前将 oldId 设置为零没有多大意义。intValue
评论