2013-04-17 25 views
1

應用場景:在UI上,輕觸一個按鈕以從服務器獲取聯繫人列表。該請求轉到子項目,該子項目執行下載和解析並通過其委託將結果返回到UI。到目前爲止一切正常。可以說沒有互聯網連接,我們不能擁有聯繫人列表。爲了解決這個問題,我想把數據緩存在覈心數據中。如果沒有互聯網,緩存的數據將被返回。現在有個問題讓我感到困惑,是否有可能創建一個數據模型,並將其用於子項目中以保存數據,並且在用戶界面中可以從相同的數據模型中提取數據並進行編輯? 所以基本上我想訪問來自不同子項目和UI的核心數據。 我無法找到關於這個問題的提示或教程。有任何想法嗎?核心數據最佳實踐在UI側和子項目中實現

在此先感謝!

編輯:

項目「B」被添加到父項目「一」。項目「b」實際上是一個靜態庫。

,如果我讓程序庫來保存和恢復數據的用戶界面,它不會是低效擺脫核心數據的所有數據,然後將其發送到用戶界面?

我其實希望有使用相同的數據模型在這兩個UI和庫的方式。 我想阻止UI有巨大的數據負載。它更好地處理核心數據來處理這個問題。記憶管理。我仍然在閱讀一些資源並試圖在測試項目中實現它。

+0

子項目是什麼意思? –

+0

添加到父項目「a」的項目「b」。項目「b」實際上是一個靜態庫。 –

+0

我假設你只想讓你的子項目相應的接口 - 允許一個子項目的核心數據的直接訪問聽起來就像一個漏水的抽象 –

回答

0

我認爲,只有主體工程應處理持久性,因爲比你可以隨時決定以不同的方式處理它 - 永久還是不救它,使用核心數據或本土SQL包裝......。因此,代表決定如何處理更多數據。
但隨着委託協議,您可以決定維護不同的模型協議,以定義您的模型可以容納哪些模型。這將與實施無關。如果這個對象符合協議,那麼委託現在可以返回對象 - 不管是否核心數據模型 - 給委託者。子模塊中的委託人現在可以檢查服務器和/或緩存中的值。

+0

感謝您的建議。如果核心數據是由庫處理的話會怎麼樣? UI和其他庫應該通過負責任的lib。你怎麼看待這件事? –

+0

我認爲它應該只是對核心數據或通信負責。否則你會創建一個難以維護的怪物模塊並集成到其他項目中。所以沒有贏。一個模塊應該保證2件事:它只做一件事 - 但是正確的,它定義了清晰的接口。 – vikingosegundo

+0

是的,我正在擔心怪物模塊。好,謝謝。我仍然贊成在一個模塊中完成coredata。我不能在應用程序代理中這樣做的原因是應該在轉換到新的靜態庫時工作。關鍵是應用程序應該隨時準備就緒,即使在開發過程中也是如此。 –