ios – 应用更新,NSURL和文档目录

前端之家收集整理的这篇文章主要介绍了ios – 应用更新,NSURL和文档目录前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在应用程序商店中有一个应用程序,它使用Core Data来保存大部分数据.
例外是存储图像.我将子目录中的图像存储到Documents目录,并将NSURL引用存储在核心数据存储的相应对象属性中.

我们注意到,当更新进入应用程序商店时,使用与先前版本的应用程序一起存储的引用,找不到这些图像,因此不显示这些图像.
现在,我怀疑问题在于,由于我们使用开发设备进行测试,因此这个问题会传播,因为dev应用程序使用的Applications目录中的Directory与App store正在创建/使用的目录不同.我注意到应用程序中App的App store目录与Xcode中调试版本时创建的App Store目录之间存在差异.
因此,存储在核心数据中的URL指向错误的应用程序文件夹.
这有点难以调试,因为一旦新版本在商店中发布,我就无法下载旧的应用程序版本.

所以我有几个问题.我是否可以保证下载同一应用程序版本的人员所在的Applications子目录是相同的,这使得非开发设备无问题?

我应该存储相对图像网址或字符串来表示这些资源的位置,还是应该可以存储最终成为绝对网址的内容

非常感谢,
费利佩

解决方法

您应该使用相对URL来存储对文件的引用.应用更新后,绝对URL可能会更改

Files Saved During App Updates

When a user downloads an app update,
iTunes installs the update in a new app directory. It then moves the
user’s data files from the old installation over to the new app
directory before deleting the old installation. Files in the following
directories are guaranteed to be preserved during the update process:

  • Application_Home/Documents
  • Application_Home/Library

Although files
in other user directories may also be moved over,you should not rely
on them being present after an update.

https://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html

对于沙盒而言,应用程序主页也是用户主页.因此可以使用unix代字号,它是用户家的简写,即〜/ Documents,〜/ Library等.

使用 – [NSString stringByAbbreviatingWithTildeInPath]将完整路径转换为相对路径.并用 – [NSString stringByExpandingTildeInPath]反转它.

猜你在找的iOS相关文章