因此,在發佈新版本的應用程序時,我的核心數據驅動應用程序中的SQL數據更新頗爲流行。應用程序的力學如何擦除IOS中的Documents文件夾中的應用程序數據?
的
快速總結我有一個使用相同xcdatamodeld文件作爲我的應用程序,我在其中預先填寫SQL數據庫(源碼文件)一個控制檯應用程序。然後,我在我的應用程序中使用此文件以滿足預填數據的要求。
問題是,每次我運行這樣的更新(通常每月)時,文檔文件夾被保留,應用程序忽略新數據並顯示新數據應該在的空白頁。這顯然通過刪除&重新安裝應用程序來解決,但對於每月需要新內容的用戶而言,這太麻煩了。
我已經試過這麼被告知遠
-I通過核心數據遷移文檔的外觀和使用「數據模型版本」。這不適合我,因爲我的問題是與實際數據不是模型。模型保持不變,只是它發生變化的數據。
- 我試圖加載從每天一個Web服務JSON文件,以避免需要不斷更新的應用程序本身,而是我的投訴從我的客戶,並指出,主要的一個特點是用戶想要的已離線訪問。尤其對於那些移動互聯網接入相當昂貴且不可靠的國家/地區。
-The上述原因排除了其他解決方案,比如stackmob等
後讀,多想,我覺得這可能工作;
編寫代碼以在應用程序啓動期間檢查現有數據庫。如果現有數據庫與新數據庫不同(我計劃使用某種數字相關條件,例如,版本號<新版本),那麼它將刪除現有數據庫並使用更新中的新數據庫。每次更新發布時都不需要用戶刪除並重新安裝應用程序。
在這個階段,我願意接受任何其他的想法,讓我可以預先填充數據庫並每月更新一次,而不用擔心。 (我不介意重寫從頭開始的應用程序)。
任何幫助,歡迎。 [不要讓我的掌握降價騙你,我是一個初學者;)]
我會將一個VersionKey添加到NSUserDefaults中,並從CoreData中刪除舊的.sqlite文件並從新創建它。或者每次更新應用程序時將其重命名爲.sqlite存儲文件,但這可能會讓您的文檔目錄中的數據不明確。 –
我看到你的角度。我是否可以在我的applicationDidFinishLaunching ...中訪問這個VersionKey?原諒我的天真,但我設置這個版本的關鍵是什麼「財產」? .sqlite或其他東西? – Josh
http://www.raywenderlich.com//12170/core-data-tutorial-how-to-preloadimport-existing-data-updated看看這個,會指引你進入正確的方向! –