之前lp生病手術,加上項目緊張,有些博友的訊息沒有回複.主要還是關於Omni的例子,不日整理好後上傳到git,供交流學習.
下面總結下之前遇到的ios資料存放區中的經驗總結.
5.0以後,使用者可以選擇將程式備份到icloud,這對沙箱內的資料存放區有了新的要求。
開啟icloud備份後,程式內容可以備份到雲端,這樣使用者資料可以在其他i裝置上使用。這樣,開發人員在沙箱中儲存資料就有講究了。直接上Apple的文檔。
下面簡單翻譯一下。
icloud和itunes對以下三個檔案夾不會備份:
- <Application_Home>/AppName.app
- <Application_Home>/Library/Caches
- <Application_Home>/tmp
以下是資料存放區的幾條規則
- 關鍵資料存放區在<Application_Home>/Documents。所謂關鍵資料(critical data)是指不能有程式產生的如使用者產生的文檔或其他資料。
- 輔助檔案(support files)指程式使用中通過下載獲得或者使用者可以重新建立的檔案,他們的存放取決於ios版本:
- ios5.1及以後,儲存在<Application_Home>/Library/Application Support, 並設定NSURLIsExcludedFromBackupKey屬性。
- ios5以及之前的系統,儲存在<Application_Home>/Library/Caches就可以避免被備份。對於5.0.1系統,也是儲存在同樣位置。但是通過以下方式設定不備份的屬性。
- 快取資料儲存在<Application_Home>/Library/Caches。快取資料指的是資料庫檔案和可以下載的檔案,比如雜誌/新聞/地圖導航類應用需要用到的資料。快取檔案在儲存空間不夠的情況下會被系統刪除。
- 臨時資料<Application_Home>/tmp.臨時資料指一段時間內不需要儲存的資料,開發人員要注意隨時情況此檔案夾.
下面再介紹下程式下載更新後,系統如何處理沙箱資料.
下載更新並安裝後,系統會建立一個檔案夾安裝程式,再把原有程式中的使用者資料拷貝到新地址,再刪除原有程式.使用者資料指的就是以下兩個檔案夾的內容:
- <Application_Home>/Documents
- <Application_Home>/Library
另外,對於備份還有個概念要提一下:
1以上備份到遠端指的是程式內的使用者資料備份到icloud雲端服務器上,但是使用者可以設定關閉對此應用的備份.
2程式中使用icloud功能,將檔案儲存體到icloud雲端服務器,這是由程式功能決定的,而不是可以由使用者左右的.