我正在嘗試存儲本地保存的有關用戶操作的分析數據,以便以後可以在用戶連接到互聯網時上傳。我希望數據在本地存儲,並且在正常情況下在應用的後續打開之間不會被刪除。我不想將數據同步到iCloud。我最好也喜歡在更新之間保留的數據。如果數據在空間不足的情況下被刪除,那很好。我應該在iOS上存儲分析數據的目錄是什麼?
我碰到在哪裏數據 - 存儲無論是在NSCachesDirectory或NSLibraryDirectory不同來源不同的答案。注意NSCachesDirectory是NSLibraryDirectory的子目錄,例如。該文件系統看起來像Application_Home/Library/Caches /。
根據官方文檔:http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html#//apple_ref/doc/uid/TP40007072-CH8-SW9意味着我應該使用NSCachesDirectory來存儲數據,它是不是在大多數情況下刪除。這也意味着NSLibraryDirectory同步到iCloud。
根據這些問題的答案:How can I get a writable path on the iPhone?,https://stackoverflow.com/a/5444762/340520/,When are files from NSCachesDirectory removed?,不保留應用程序更新,並聲稱,我必須不斷地重新創建NSCachesDirectory之間NSCachesDirectory。第一個答案也意味着NSLibraryDirectory是存儲數據的最佳位置。然而那些答案是兩歲。
根據文檔和此答案:http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html#//apple_ref/doc/uid/TP40007072-CH8-SW10,https://stackoverflow.com/a/8830746/340520,應用程序更新之間保留NSCachesDirectory。
平臺Localytics的iOS SDK存儲在NSCachesDirectory他們的數據:https://github.com/twobitlabs/Localytics-iOS/blob/master/src/LocalyticsDatabase.m Mixpanel的iOS SDK存儲其數據NSLibraryDirectory:https://github.com/mixpanel/mixpanel-iphone/blob/master/Mixpanel/Mixpanel.m
所有這些源之間,我一直傾向於使用NSCachesDirectory傾斜,但我不相信在某些情況下數據不會定期刪除。
檢驗關於iPhone 4與iOS 6.1.2表示NSCachesDirectory並非該應用的終端之間刪除。 – sskates 2013-03-01 03:57:52