2014-09-20 24 views
0

在我的Swift應用程序中,有兩個類可以在近75%的應用程序中進行交互。一個是一組名爲UserSettings的設置,另一個名爲Job。這些都存儲在sqllite中。經常訪問的對象/類

大部分時間它只是讀取已設置的值,並且在一個區域中它也會寫入。似乎很奇怪必須重新實例化我的設置和作業服務以與我的數據庫進行通信,以便找回我正在訪問的同一對象。

在這樣的情況下,選擇我看是要麼

  1. 不斷地讀取/寫入到數據庫,或
  2. 做一些單身整個應用程序訪問的。

我不確定Swift在改變這個問題的答案方面有多大改變,但我想尋求Stack Overflow的幫助。如何設置我可以在整個應用程序中訪問的對象?或者它不是理想的,而是我需要每次從我的數據庫中獲得它?

非常感謝。

回答

0

我建議你閱讀核心數據如何工作,我知道你在管理自己的商店,但架構工作正常。作爲一個總結,你可以創建一個「上下文對象」(這可能是你的單身人士)與你的商店交互(sqlite)創建託管對象,你將使用與「上下文對象」關聯的這些對象,並且當你需要保存更改,您需要使用「上下文對象」來編寫存儲中的所有託管對象。

您的託管對象只需要是「上下文對象」對象的副本,因此,當您要求將數據「保存」到「上下文對象」時,您只能複製該託管對象。這將有助於保存多線程編碼。 (您的上下文對象應該在序列化的隊列上工作)。

再次,這只是一個總結,你應該閱讀核心數據如何工作,以獲得更好的圖片。

編輯:

閱讀這篇博客:http://www.objc.io/issue-4/core-data-overview.html 不同的是,你只需要一個存儲和一個上下文對象。

+0

我也可以使用NSUserDefaults嗎?我主要是經常重新閱讀價值觀。 – NullHypothesis 2014-09-21 01:51:34

+0

NSUserDefaults它只是一個plist文件的管理器。如果你的數據已經存儲在sqlite數據庫中,爲什麼你需要再次存儲它?這將會非常慢,因爲您將讀取一個文件以在另一個文件中寫入。 – 2014-09-21 14:46:14