我使用NSFileProtectionKey属性使用文件安全性,如下所示:
[[NSFileManager defaultManager] setAttributes:@{NSFileProtectionKey : NSFileProtectionComplete} ofItemAtPath:coreDataFilePath error:NULL];
因此,当设备锁定密码时,不能打开该路径中的文件。问题是,即使设备被锁定,iOS7应用程序也可以在后台运行。当像Coredata [NSManagedObjectContext save:]
一样运行时将失败并显示错误:
NSCocoaErrorDomain,134030,操作无法完成。 (可可错误134030.){NSSQLiteErrorDomain = 23; NSUnderlyingException =“更新max pk失败:授权 否认“;}
如何处理此类案件?
答案 0 :(得分:7)
首先,请参阅WWDC 2013视频中的会话204“多任务处理的新功能”。它涵盖了这种情况。
根据安全首选项,您可以采取以下几种方法:
NSFileProtectionCompleteUnlessOpen
),直到设备解锁,然后合并。这通常是首选方法。NSFileProtectionCompleteUnlessOpen
并保持打开状态。NSFileProtectionCompleteUntilFirstUserAuthentication
。这通常是最糟糕的方法。