1

我有一个具有“布尔”类型的属性的核心数据托管对象。

在我的头文件中,我有这个:@property (nonatomic, retain) NSNumber * includeInHistory;

我正在使用@dynamic includeInHistory 实现

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

问题是,在保存和检索数据后,includeInHistory 返回似乎是标准的 NSNumber(整数,不键入为布尔值)。这是有问题的,因为当转换为 JSON 时,它映射到 "includeInHistory" : 1 而不是 includeInHistory" : true

现在,我不得不求助于拆箱,然后每次我要导出为 JSON 时重新装箱,但这对我来说似乎是一个错误......我在这里遗漏了什么吗?

谢谢

4

2 回答 2

1

就 Core Data 而言,布尔值只是一个 NSNumber,其值限制为 0 或 1。Core Data 期望接收控制器和/或视图代码正确显示它。

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

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

于 2010-03-07T14:32:00.173 回答
0

听起来 JSON 框架没有识别出您的号码是布尔类型。我认为这是一个错误;我建议你举报

于 2009-11-09T03:56:26.213 回答