从核心数据中保存和检索数据

Saving and retrieving data from core data

提问人:user710502 提问时间:11/19/2013 更新时间:11/20/2013 访问量:55

问:

我有一个程序,我在其中保存一个 int 值,如下所示:

client.oldId = [clientDict objectForKey:@"oldId"];

此时,调试时,“假设”保存的值为 31。

当我尝试使用上下文检索此项目时,我按如下方式检索它:

 int oldId = [NSNumber numberWithInt:client.oldId];

它变得174806944,为什么会发生这种情况?,这个项目没有求和运算或类似的东西,就在它保存到上下文之前,它是 31。

任何帮助将不胜感激。

iPhone Objective-C Core-Data iOS4

评论


答:

1赞 logixologist 11/19/2013 #1

在设置变量之前,请将其设置为 0

int oldId = 0
oldid = [NSNumber numberWithInt:client.oldId]; 

有时,您可能会在内存位置出现垃圾,从而导致这种情况。

更新的答案:虽然从技术上讲,有时我发现如果你不清除整数,我会得到同样的东西。在本例中,他将 an 设置为 .正确的方法是获取 NSNumber 并得到它,如下所示:intNSNumberintegerValue

[client.oldId intValue]

评论

0赞 user710502 11/19/2013
您好,谢谢,我尝试了这个仍然是相同的问题。这很奇怪
0赞 logixologist 11/19/2013
如果我看到的是 NSNumber(我假设)......为什么不这样做呢client.oldIdoldId = [client.oldId intValue]
0赞 user710502 11/19/2013
将尝试这些建议并在几分钟内回复,谢谢:)
0赞 Martin R 11/19/2013
@logixologist:您应该使用 使用正确的代码更新您的答案。(在为其赋值之前将 oldId 设置为零没有多大意义。intValue