当设备密码被锁定时,无法保存核心数据管理对象上下文

时间:2013-05-15 15:54:01

标签: ios cocoa-touch core-data

我正在创建一个这样的持久性商店协调员:

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Mydatabase.sqlite"];
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
      if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error])

问题是,只要我在任何托管对象上下文上发出保存,它就会失败并出现以下错误:

May 15 17:46:18 xx-iPad @WorkMail[2807] <Warning>: Core Data: annotation: -executeRequest: encountered exception = Updating max pk failed:  with userInfo = {
        NSSQLiteErrorDomain = 14;
    }
May 15 17:46:18 xx-iPad @WorkMail[2807] <Warning>: Core Data: annotation: -executeRequest: encountered exception = Updating max pk failed:  with userInfo = {
        NSSQLiteErrorDomain = 14;
    }
May 15 17:46:18 xx-iPad @WorkMail[2807] <Warning>: Core Data: annotation: -executeRequest: encountered exception = Updating max pk failed:  with userInfo = {
        NSSQLiteErrorDomain = 14;
    }

这是一个错误,另一个错误是错误21,授权被拒绝错误。

如果未启用密码锁定,则不会发生这种情况。我使用单个持久性存储协调器从后台线程写入核心数据。

1 个答案:

答案 0 :(得分:1)

我已经知道这是什么了。问题不是核心数据问题,而是启用密码锁时,数据保护已启用到最大级别,这阻止了对应用程序文档目录中任何文件的任何写入。该问题是由另一个团队成员更改应用程序ID引起的。因此,如果您点击此项,请检查您的应用ID和开发者证书属性。