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

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 设置为零没有多大意义。)

以上是关于从核心数据中保存和检索数据的主要内容,如果未能解决你的问题,请参考以下文章

从核心数据中检索 UUID 并设置 UUID 变量不起作用

Swift - 保存到核心数据

核心数据 - 保存和检索属性 - 示例代码

我可以从服务器检索数据并将其存储在核心数据中吗?

从核心数据中检索 Swift 中的坐标时遇到问题

保存核心数据相关数据并使用具有多个实体的 NSPredicate 和 NSFetchedResultsController 检索