我有一個相當複雜的iPhone應用程序,它依靠API從服務器獲取數據並將其顯示給用戶。我有大約5個用於整個應用程序的模型類 - 它們只是擴展NSObject。使用現有(普通)機型將核心數據添加到iPhone應用程序
我想添加一些持久性的模型,以允許應用程序的某些部分即使設備脫機使用 - 它確實基本上只是美化緩存。我只希望我的模型的某些實例能夠被持久化 - 例如,用戶已加入書籤的項目 - 而其他項目不應該,例如數百個搜索結果。
核心數據是否是正確的解決方案?我可以看到的困難是:
- 我將不得不改變我在整個項目中實例化我的模型對象的方式。我必須將它們初始化爲上下文的一部分,如果它們實際上來自外部API,則這並不一定有意義。
- 我需要小心,不要堅持我不想要的實例。這似乎歸結爲要麼刪除它的創建後立即被管理對象(真彆扭),或使用一個單獨的,非持續性方面,因爲我不想堅持實例(更好,但仍然有點尷尬)
我希望能夠在整個應用程序中繼續使用我的模型,而無需更改不需要關心持久性的代碼,但根據我的要求,這似乎不可行。另一種方法是與我的現有對象並行設置一組新的託管對象,並僅使用託管對象來實現持久性 - 但這種重複從未像是正確的解決方案。
我應該試着將核心數據放在這裏嗎?如果是的話,該怎麼做?或者我應該只看其他選項 - sqlite3(對於我需要的似乎有點複雜),用戶默認值(可能不是他們想要的),甚至序列化並將我自己的對象寫入文件(似乎是hack-ish )。
感謝您的任何意見!
謝謝!不能相信我錯過了NSKeyArchiver。我會給它一個鏡頭 - 這可能正是我需要的。 –
沒問題,很高興提供幫助(: –