2012-10-02 42 views
0

我正在做核心數據。由於原始的sqlite文件包含應用程序中的數據。我決定做以下事情:核心數據解決方案讀寫分開

分開讀寫操作。從一個sqlite文件的一個數據源中進行所有讀取,並將所有文件寫入另一個文件。

由於iOS應用程序中的目錄有一些規則,因此我打算將所有讀取數據從bundle複製到緩存目錄,並將寫入數據放在文檔目錄中。

問題是,是否有可能直接在包資源中使用閱讀文件。這意味着我不必將其複製到緩存文件中,這將爲設備節省一些空間。

或者你們有其他更好的主意,請告訴我。

我將寫入的數據放入文檔中,因爲其中的文件可以通過icloud備份,這可能充當我的程序中的一個功能。

+0

爲什麼你需要單獨的文件?您可以只讀或寫入NSManagedObjectContext,然後隨時保存。 –

+0

@Aaron,我想分開文件,因爲只讀文件包含所需的所有數據,這些數據的大小很大。寫入文件包含用戶活動。將寫入文件放入文檔目錄時,可以對其進行備份。這就是你的大衛 – seanxiaoxiao

回答

0

你問你想做什麼是一個好主意,但首先你需要考慮一些可能的陷阱。

我想你的包中的文件也是用Core Data創建的,它有一個MOM。您編寫的新文件 - 它可能使用相同的MOM。如果你需要更新MOM,你會怎麼做? iCloud上的文件將被稱爲版本1,也許用戶iPhone使用版本1,但是您的新版本2被加載到用戶iPad上。怎麼辦? ipad不應更新存儲庫,因爲它會在嘗試使用數據時使iPhone發生故障 - ipad無法知道所有其他設備是否已更新。

+0

大衛。首先。這兩個文件,讀寫數據源來自不同的MOM。 – seanxiaoxiao

+0

對不起,我沒有完成評論,但課程開始。我的想法是,不同設備的版本可能存在差距,我認爲icloud對用戶意味着什麼。但在我的情況下,我的關注更多的是保持用戶的行爲。當用戶刪除應用程序並重新安裝時,用戶操作可以被下載並重新使用。所以我不會分開只讀數據和寫入數據。 – seanxiaoxiao