2010-06-10 123 views
5

在我的核心數據模型(在iPhone SDK 3.1上),我有幾個與圖像的相同實例關聯的實體。圖像本身也存儲爲託管對象。爲了節省磁盤空間,我試圖爲圖像創建1個數據庫文件,爲所有其他對象創建另一個數據庫文件。核心數據與獲取屬性的跨存儲關係

閱讀蘋果文檔和谷歌上搜索了天,我來到了以下結論: - 創建1個數據模型,包含所有實體 說明 - 使用1個持久存儲協調

  • 使用配置爲存儲圖像實體在不同的文件(源碼),比其他實體(見here

  • 而且,作爲核心數據不支持從實例的關係,一個持久性存儲實例在另一個持久化存儲,我們E「擷取的屬性」創建弱,單向關係

使用的配置是非常簡單的:使用數據建模的配置分配給實體,並宣佈將持久存儲到協調時使用的配置。就我而言,我在商店裏添加了協調員。

但是,這裏有個問題:當讀取時,讓我們說一個商店中的'用戶'對象,如何使用提取的屬性來加載與該用戶關聯的圖像(並將它們分配給用戶對象)?

是否必須爲用戶對象中的「圖像」編寫自定義存取器方法?如何(以及在​​哪裏)爲獲取的屬性指定謂詞?

我確信必須有一個教程或例子解釋這個(因爲這顯然是蘋果公司建議這樣做的方式)。但到目前爲止沒有運氣。

有什麼想法?

希望我們可以開始討論這個話題。我敢肯定,還有其他(更聰明)的方法來解決這個問題...

回答

1

我不確定你對磁盤空間的斷言是否正確。如果沒有來自測試您的應用的證據,我會堅持使用更簡單的一個商店解決方案。這就是說...

您需要在User類中存儲圖像的一些識別屬性。我會使用可變形的屬性來存儲管理器對象ID。您在數據建模器中添加一個提取的屬性,並在那裏指定謂詞。