2013-08-25 66 views
0

我有一個核心數據模型,其Transformable屬性名爲location。但是,當我使用initWithEntity:insertIntoManagedObjectContext:創建新實體時,locationnil默認情況下未分配核心數據可轉換屬性?

這是預期的行爲?我期待着一個實體領域的所有內存都可以預先分配。如果這是預期的行爲,那麼解決此問題的建議方法是什麼?正在爲location分配內存awakeFromInsert一個好主意嗎?

回答

0

是的,這是預期的。如果你沒有給實體提供任何數據,它將如何知道分配的大小。即使如此,它將如何處理這種分配,因爲它不是一個真正的對象,你不能真正將它轉換成一個。如果沒有任何東西,你應該期望該房產持有nil。你不需要也不應該用一些默認的空分配填充它。

如果你有一個你想要設置的默認對象,那麼這是一個不同的問題。那麼awakeFromInsert可能是一個不錯的選擇。問題是默認對象是否應該保存到商店中(因此可以搜索)。如果不存在,則可能需要實施自定義存取器方法,以便在存儲值爲nil時返回默認對象。