从核心数据中保存和检索数据
Posted
技术标签:
【中文标题】从核心数据中保存和检索数据【英文标题】:Saving and retrieving data from core data 【发布时间】:2013-11-19 04:58:03 【问题描述】:我有一个程序,我在其中保存一个 int 值,如下所示:
client.oldId = [clientDict objectForKey:@"oldId"];
此时调试时“假设”保存的值是31。
当我尝试使用上下文检索此项目时,我按如下方式检索它:
int oldId = [NSNumber numberWithInt:client.oldId];
它变成了 174806944,为什么会发生这种情况?这个项目没有求和运算或类似的东西,在它保存到上下文之前它是 31。
任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:在设置变量之前将其设置为 0
int oldId = 0
oldid = [NSNumber numberWithInt:client.oldId];
有时您可能会在可能导致此问题的内存位置获得垃圾。
更新答案:虽然技术上有时我发现如果你不清除整数,我会得到同样的结果。在这种情况下,他将int
设置为NSNumber
。正确的方法是获取 NSNumber 并像这样获取它的 integerValue
:
[client.oldId intValue]
【讨论】:
您好,谢谢,我试过了,还是一样的问题。很奇怪 如果我看到client.oldId
是一个 NSNumber(我假设)......为什么不这样做 oldId = [client.oldId intValue]
将尝试这些建议并在几分钟内回复谢谢 :)
@logixologist:您应该使用intValue
用正确的代码更新您的答案。 (并且在为其赋值之前将 oldId 设置为零没有多大意义。)以上是关于从核心数据中保存和检索数据的主要内容,如果未能解决你的问题,请参考以下文章
保存核心数据相关数据并使用具有多个实体的 NSPredicate 和 NSFetchedResultsController 检索