我有一個應用程序,它使用從我們的服務器下載的大量數據(基本上是圖像),並且應該可以在沒有互聯網連接的情況下使用。存儲應用程序內容的最佳地點
我以前用<Application_Home>/Library/Caches
這個目錄存儲它們,但是在iOS更新過程之後,它們全部被刪除了。這種行爲對我來說是不可接受的,現在我正在尋找更好的地方來存儲數據,並確保它們不會被系統刪除。
什麼是存儲這種數據的最佳地點?
我有一個應用程序,它使用從我們的服務器下載的大量數據(基本上是圖像),並且應該可以在沒有互聯網連接的情況下使用。存儲應用程序內容的最佳地點
我以前用<Application_Home>/Library/Caches
這個目錄存儲它們,但是在iOS更新過程之後,它們全部被刪除了。這種行爲對我來說是不可接受的,現在我正在尋找更好的地方來存儲數據,並確保它們不會被系統刪除。
什麼是存儲這種數據的最佳地點?
緩存目錄就是名稱所暗示的緩存。緩存可以清空,你應該確實重新下載圖像。文檔目錄是存儲這些圖像的好地方,但您應該在文件上存儲skip iCould backup key。
只是一個小尖,總是請使用URLForDirectory:inDomain:appropriateForURL:create:error:
或NSSearchPathForDirectoriesInDomains
的文件目錄的數據只有iOS不刪除:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
數據的文檔與iCloud的同步。如果你有很多人,你需要禁用這個選項:
[urlOfImage setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error];
'Documents'文件夾怎麼樣?是你爲什麼沒有在那裏儲存任何東西的特殊原因? – holex 2014-09-25 11:20:21
是的,蘋果說:「使用此目錄存儲重要的用戶文檔和應用程序數據文件。關鍵數據是任何不能由您的應用程序重新創建的數據,例如用戶生成的內容。」 – Lloyd18 2014-09-25 13:03:06
你剛纔引用了這裏的觀點:_「關鍵數據是你的應用程序無法重新創建的任何數據」_,你的文章的第一句話是關於_「(...)大量數據(基本上是圖像)我們的服務器(...)「_,所以問題是,**這些圖像是否可以通過您的應用重新創建?**。如果你的答案是_no_,那麼沒有理由不能使用'Documents'文件夾...如果你的答案是_yes_,那麼你不需要在任何地方存儲這些圖像,因爲你的應用程序可以在運行時重新創建這些圖像。 .. – holex 2014-09-25 13:20:02