开发日志-iOS9 3 沙盒读写失败

343 阅读1分钟

update: 最近吃饭跟童鞋聊到,其实在iOS9之后许多地方权限问题导致错误异常崩溃等,比如相册无权限也可以读数据,缺无法编辑。

最近项目接近尾声,准备提交上线时,测试出老丢用户缓存信息,而抓沙盒目录却发现文件,数据库,序列化对象文件,cache均在,以前真没遇到这种情况,负责这块的哥们自习跟了下数据读写,发现9.3以上设备,在机器锁屏一段时间后,文件系统读写错误,一一排除各种可能之后,最近的iOS9.0后对于安全相关的东西更新比较多。

大概像NSFileManager对象需要给到权限

NSString * path = @"...";
NSFileManager *fm = [NSFileManager defaultManager];
        [fm setAttributes:@{NSFileProtectionKey : NSFileProtectionCompleteUntilFirstUserAuthentication} ofItemAtPath:path error:nil];

if (![fm fileExistsAtPath:path]) {
   UALog(@"文件不存在");
 } else {
   if (![fm isReadableFileAtPath:path]) {
     UALog(@"文件不可读");
  }
}

沙盒文件读写错误的童鞋可以从这个角度看看问题,感谢。 有问题,直接可以给我留言。