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]反转它.

相关文章

背景 前端时间产品经理决定使用百度统计,使得 工程B 中原统计sdk-友盟统计,需要被去除。之前尝试去除...
结论: alloc负责分配内存和创建对象对应的isa指针; init只是返回alloc生成的对象。 所以alloc后,多次...
更新 如果UI愿意把启动图切割成n份,按一定约束在launchscreen.storyboard中进行排版,启动图效果会更好...
最近在看一本书《Effective OC 2.0》,今天看到有个tip是OC适中循环各自优劣性,作者最终推荐此块循环。...
// // ViewController.m // paintCodeTestOC //gif // Created by LongMa on 2019/7/25. // #import &a...
背景介绍 一般情况下,出于省电、权限、合理性等因素考虑,给人的感觉是很多奇怪的需求安卓可以实现,但...