2009-09-29 81 views
1

我有一個具有「布爾」類型屬性的核心數據管理對象。核心數據錯誤處理NSCFBoolean?

在我的頭文件中我有這個: @property(nonatomic,retain)NSNumber * includeInHistory;

和我使用的是@dynamic includeInHistory實現

當保存到磁盤之前,該管理對象的實例進行交互,我已經得到的東西,實際上通過NSNumber的接口映射到NSCFBoolean。我使用「json-framework」對包含來自Core Data的值的字典進行編碼。

的問題是,保存和檢索數據返回後,返回includeInHistory這似乎是一個標準的NSNumber(整數,而不是類型爲布爾值)。這是有問題的,因爲當轉換爲JSON時,它映射到「includeInHistory」:1而不是includeInHistory「:true

現在,我不得不求助於拆箱,然後重新裝箱每次我要導出爲JSON,但是這似乎是對我的錯誤....我在這裏失去了一些東西?

感謝

回答

0

聽起來就像是JSON框架沒有認識到你的電話號碼是布爾類型的。我認爲這是一個錯誤;我建議你report it

1

至於核心數據而言布爾只是一個NSNumber的,其L值。模擬爲0或1. Core Data期望接收控制器和/或視圖代碼正確顯示。

不管怎樣,因爲無論如何你都要繼承NSManagedObject,所以我會建議編寫一個includeInHistoryValue方法來自動執行裝箱和拆箱。然後你的JSON解析器會處理原始的布爾值。

您可能還想考慮使用mogenerator,因爲它會自動添加這些裝箱和拆箱方法併爲您維護自己的子類。