iphone - 核心数据错误处理 NSCFBoolean?

标签 iphone cocoa core-data boolean json-framework

我有一个 Core Data 托管对象,该对象具有“boolean ”类型的属性。

在我的头文件中我有这个: @property(非原子,保留)NSNumber * includeInHistory;

我正在使用 @dynamic includeInHistory 实现

在保存到磁盘之前与此托管对象的实例进行交互时,我得到了一些实际上通过 NSNumber 接口(interface)映射到 NSCFBoolean 的东西。我正在使用“json-framework”对一些包含来自核心数据的值的字典进行编码。

问题是,在保存并检索数据后,includeInHistory 返回看起来是标准 NSNumber 的内容(整数,而不是 boolean 类型)。这是有问题的,因为当转换为 JSON 时,它映射到 "includeInHistory": 1 而不是 includeInHistory": true

目前,我必须先拆箱,然后在每次要导出为 JSON 时重新装箱,但这对我来说似乎是一个错误......我在这里遗漏了一些东西吗?

谢谢

最佳答案

就 Core Data 而言, boolean 值只是一个 NSNumber,其值限制为 0 或 1。Core Data 期望接收 Controller 和/或 View 代码正确显示它。

但是,既然您无论如何都要子类化 NSManagedObject ,那么我建议编写一个 includeInHistoryValue 方法来自动进行装箱和拆箱。然后你的 JSON 解析器将处理原始 boolean 值。

您可能还想考虑使用 mogenerator,因为它将添加这些装箱和拆箱方法并自动为您维护子类。

关于iphone - 核心数据错误处理 NSCFBoolean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1492726/

相关文章:

iphone - 核心数据: Fetch via specific property (join relationship)

ios - 将 XML 数据解析为核心数据

ios - 仅使用一个托管对象预填充核心数据

iphone - 如何从 systemTimeZone(NSTimeZone) 中提取时区

xcode - NSTabViewItem 中的图像未显示

macos - 如何防止设置不是由我的代码设置的 [NSApp dockTile] badLabel 值?

cocoa - 为什么我的 NSWindow 子类中出现 "does not support archiving"?

ios - 我想要一个带有三角形图标的按钮

ios - 修复 UITableView 中第一行的纵横比

iphone - 从 UIWebView 中的电影播放器​​获取通知