2013-01-10 93 views
10

我最近開始研究核心數據,請任何一個人告訴我可轉換和二進制數據的區別是什麼。我需要將myClassObject存儲在覈心數據中。我已經創建了屬性並將其類型定義爲二進制數據,但在存儲時我出現錯誤。可轉換和二進制數據有什麼區別

+1

你會得到什麼錯誤?你要在該屬性中存儲什麼類型的數據? (我的意思是數據的業務視圖,而不是正式的數據類型)。 –

+1

這有幫助嗎? http://stackoverflow.com/questions/3014498/what-c​​an-i-do-with-an-transformable-attribute-type-in​​-core-data-on-the-iphone – trojanfoe

回答

20

使用二進制屬性,可以直接讀寫NSData的實例。

使用可變形屬性,您可以讀取和寫入任何可以轉換爲和從NSData轉換的類的實例。實際數據存儲與二進制屬性相同,但核心數據使用NSValueTransformer在必要時轉換爲NSData或從NSData轉換。

例如,假設您的託管對象具有圖像屬性,可以方便地直接讀寫UIImage。核心數據中不能保存UIImage。但UIImage可以轉換爲NSData或從NSData轉換。因此,如果您使用可變形屬性,則可以讀取和寫入UIImage,同時仍將NSData保存在數據存儲中。

+0

湯姆,可轉換的數據會保留相同的NSData有關外部存儲的行爲? (儘管允許外部存儲沒有明確地在用戶界面中,或者會在覈心數據存儲上出現blob開始)?文檔沒有精確地說明可變形屬性將被保存到外部記錄或將要應用的規則。你能分享你的經驗嗎? –

+0

準確地說我有同樣的問題。 Transformable屬性類型中沒有這樣的選項存儲在「外部存儲」中。這是默認打開還是什麼? –

相關問題