gpt4 book ai didi

ios - 我应该在 iOS 上将分析数据存储在哪个目录中?

转载 作者:行者123 更新时间:2023-11-29 13:18:02 25 4
gpt4 key购买 nike

我正在尝试存储在本地保存的有关用户操作的分析数据,以便稍后在用户连接到互联网时可以上传这些数据。我希望数据存储在本地,而不是在正常情况下在应用程序的后续打开之间删除。我不想将数据同步到 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。

根据这些答案: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.mMixpanel 的 iOS SDK 将它们的数据存储在 NSLibraryDirectory 中:https://github.com/mixpanel/mixpanel-iphone/blob/master/Mixpanel/Mixpanel.m

在所有这些来源中,我一直倾向于使用 NSCachesDirectory,但我不确定在某些情况下数据不会被定期删除。

最佳答案

NSCachesDirectory 是错误的地方来存储您在应用程序启动甚至设备重新启动时需要的持久性信息。

为了证明我的观点试试这个......

  1. 获得一台只有 8GB 磁盘空间的 iPhone 设备。
  2. 使用您的应用在 NSCachesDirectory 中写入一个文件。
  3. 开始下载随机应用程序以填充磁盘空间。很快您就会看到操作系统显示的存储限制对话框。
  4. 现在只需重新启动手机,启动应用程序,看看是否可以找到您编写的文件。

如果你第一次找到这个文件,再试一次,你会发现你的文件不见了。在设备启动期间,如果您看到设备日志,您会注意到日志指示清除目录以腾出空间等。

使用 NSCachesDirectory 来存储您可以从服务器上不断下载的信息。不是您需要上传到服务器的信息。

关于ios - 我应该在 iOS 上将分析数据存储在哪个目录中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15150166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com