[英]What directory should I store analytics data in on iOS?
我正在嘗試存儲在本地保存的有關用戶操作的分析數據,以便以后在用戶具有Internet連接時可以上載。 我希望將數據存儲在本地,並且在正常情況下在應用程序的后續打開之間不刪除數據。 我不希望數據同步到iCloud。 理想情況下,我還希望在兩次更新之間保留數據。 如果在空間不足的情況下刪除了數據,那就很好了。
我從不同的來源那里得到了關於將數據存儲在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。
根據這些答案: 如何在iPhone上獲得可寫路徑? , https: //stackoverflow.com/a/5444762/340520/ , 何時從NSCachesDirectory中刪除文件? ,因此在應用程序更新和要求我必須不斷重新創建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,但我不確定在某些情況下不會定期刪除數據。
NSCachesDirectory是存儲永久性信息的錯誤位置,您在整個應用程序啟動甚至設備重新啟動時都需要這些信息。
為了證明我的觀點,嘗試一下...
如果是第一次找到該文件,請重試該實驗,您會發現文件丟失。 在設備啟動期間,如果看到設備日志,則會注意到日志,指示清除目錄以騰出空間等。
使用NSCachesDirectory存儲可以繼續從服務器下載的信息。 不是您需要上傳到服務器的信息。
緩存目錄僅應用於您的應用刪除后即可輕松替換的文件。 在應用程序更新期間以及如果設備存儲空間不足的情況下,可能會清除或可能不會清除Caches目錄。 僅將其用於臨時文件或可以輕松替換的文件。
我的第一個選擇是Library/Application Support
目錄( NSApplicationSupportDirectory
)。 請注意,默認情況下未創建此目錄。 您的應用必須在首次啟動時創建它。 此路徑在應用程序更新過程中(與大多數應用程序沙箱一樣)保留,並通過iTunes(或iCloud)設備備份進行備份。
我認為最好的地方是Library/Application Support (NSApplicationSupportDirectory)
請參閱如何防止文件備份到iCloud和iTunes? 有關詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.