根据建议,我们使用以下代码来检索用户文档的路径
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
我们得到以下路径: /var/mobile/Applications/3E3C1F45-6649-4EA3-93FD-CDB802E346EC/Documents/
在上述路径中,我们保存了所有用户的持久数据。
我们遇到了一些问题,用户从应用程序商店升级了应用程序的版本,不再读取持久数据,可能路径已更改,可能在新版本中使用了新的 GUID。
由于这种情况仅在应用商店更新后发生,因此测试和调试此问题的能力有限。
当用户升级应用程序时,标识符(3E3C1F45-6649-4EA3-93FD-CDB802E346EC)可能会更改,但文档和缓存应从旧目录复制到新目录。
您是否有可能将绝对路径保存到持久数据并尝试在加载文件时使用它?您应该仅保存文档目录中的文件名和目录名,并在每次加载资源时(或至少在启动时)通过附加 NSSearchPathForDirectoriesInDomain 返回的路径来生成完整路径
换句话说,不要保存诸如
/var/mobile/Applications/3E3C1F45-6649-4EA3-93FD-CDB802E346EC/Documents/MyDirectory/MyFile.txt
而是保存:
/我的目录/我的文件.txt
并将其附加到 NSSearchPathForDirectoriesInDomain 在运行时返回的任何内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)