关于iOS路径变化的解决方案

  1. 问题描述:

使用沙盒存储文件的时候,我们会保存文件的绝对路劲以便下次读取,但是发现一个现象,我们保存的文件,在第二次打开App去查找的时候,发现找不到了......

  1. 查找原因:

iOS8之后,苹果添加的新特性,将每次打开app内的沙盒[唯一编码路径](红框部分)重新生成,并保持上一次的沙盒文件(Documents、Library、tmp)移到新生成的文件内,旧文件删除,就是说,你保存的文件都在,只不过每次打开后,都会有一个新的绝对路径。

  1. 解决方法:

为了以后存取文件,应该避免存储绝对路径,通过分析原因我们很容易找到解决方案,即:保证每次使用类似 NSSearchPathForDirectoriesInDomains 方法去获取Documents文件路径,因为这样获取到到沙盒文件总是你一直使用的那个,里面的文件内容都会一直存在。

NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];

NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
posted @ 2016-11-23 10:34  AliliWl  阅读(429)  评论(0编辑  收藏  举报