核心数据错误处理NSCFBoolean?

时间:2009-09-29 13:55:22

标签: iphone cocoa core-data boolean json-framework

我有一个Core Data托管对象,其属性具有“布尔”类型。

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

我正在使用@dynamic includeInHistory实现

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

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

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

由于

2 个答案:

答案 0 :(得分:1)

就核心数据而言,布尔值只是一个NSNumber,其值限制为0或1.核心数据要求接收控制器和/或视图代码正确显示它。

但是,既然你是继承NSManagedObject的子类,那么我建议编写一个includeInHistoryValue方法,自动进行装箱和拆箱。然后你的JSON解析器将处理原始布尔值。

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

答案 1 :(得分:0)

听起来JSON Framework没有认识到您的号码是布尔类型的。我会认为这是一个错误;我建议你report it

相关问题