【问题标题】:Issue with NSSearchPathForDirectoriesInDomains And Persistent DataNSSearchPathForDirectoriesInDomains 和持久数据的问题
【发布时间】:2011-08-25 20:03:47
【问题描述】:

按照建议,我们使用以下代码检索用户文档的路径

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

我们得到以下路径作为结果:/var/mobile/Applications/3E3C1F45-6649-4EA3-93FD-CDB802E346EC/Documents/

在上述路径中,我们保存了所有用户的持久数据。

我们遇到了从应用商店升级应用程序版本的用户的一些问题,不再读取持久数据,可能路径已更改,可能在新版本中使用了新的 GUID。

因为这仅在应用商店更新后才会发生,因此测试和调试此问题的能力有限。

【问题讨论】:

    标签: ios persistence storage


    【解决方案1】:

    当用户升级应用程序时,标识符(3E3C1F45-6649-4EA3-93FD-CDB802E346EC)可以更改,但文档和缓存应从旧目录复制到新目录。

    您是否有可能将绝对路径保存到持久数据并在加载文件时尝试使用它?您应该只保存文档目录中的文件名和目录名,并在每次加载资源时(或至少在启动时)通过附加 NSSearchPathForDirectoriesInDomain 返回的路径生成完整路径

    也就是说,不要保存诸如

    之类的PATHS

    /var/mobile/Applications/3E3C1F45-6649-4EA3-93FD-CDB802E346EC/Documents/MyDirectory/MyFile.txt

    改为保存:

    /MyDirectory/MyFile.txt

    并将其附加到 NSSearchPathForDirectoriesInDomain 在运行时返回的任何内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-03
      • 1970-01-01
      相关资源
      最近更新 更多