[英]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.