我有一个Core Data托管对象,其属性具有“布尔”类型。
在我的头文件中,我有这个: @property(非原子,保留)NSNumber * includeInHistory;
我正在使用@dynamic includeInHistory实现
在保存到磁盘之前与此托管对象的实例进行交互时,我已经通过NSNumber接口实际映射到NSCFBoolean。我正在使用“json-framework”来编码一些包含来自Core Data的值的字典。
问题是,在保存并检索数据后,includeInHistory返回看似标准的NSNumber(整数,不输入布尔值)。这是有问题的,因为当转换为JSON时,它映射到“includeInHistory”:1而不是includeInHistory“:true
现在,我不得不求助于拆箱,然后每次我要以JSON导出时重新装箱,但这对我来说似乎是个错误......我在这里错过了什么?
由于
答案 0 :(得分:1)
就核心数据而言,布尔值只是一个NSNumber,其值限制为0或1.核心数据要求接收控制器和/或视图代码正确显示它。
但是,既然你是继承NSManagedObject
的子类,那么我建议编写一个includeInHistoryValue方法,自动进行装箱和拆箱。然后你的JSON解析器将处理原始布尔值。
你可能还想考虑使用mogenerator,因为它会自动添加那些装箱和拆箱方法并为你维护你的子类。
答案 1 :(得分:0)
听起来JSON Framework没有认识到您的号码是布尔类型的。我会认为这是一个错误;我建议你report it。