persistentstorecoordinator coredata错误:NSSQLiteErrorDomain = 522

时间:2019-02-21 12:10:04

标签: ios objective-c core-data

我正在使用ios项目,该项目在注销时删除数据库,但是当我尝试与其他用户重新登录时,出现如下错误:

  

NSSQLiteErrorDomain = 522

我的注销代码如下:

NSURL *storeURL = [[self contentStorageDirectory] URLByAppendingPathComponent:@"*****.sqlite"];
    [[[NSFileManager alloc] init] removeItemAtURL:storeURL error:nil];
    self.managedObjectContext = nil;
    self.managedObjectModel = nil;
    self.persistentStoreCoordinator = nil;
    [self getManagedObjectContext];

1 个答案:

答案 0 :(得分:0)

注销?时删除数据库。也许您试图删除所有以前登录的用户数据。您必须阅读有关CoreData的更多信息。您可以将上下文设置为零,但是不应触摸持久性存储协调器,因为它具有对要使用的模型的引用。

当商店分配为nil时,如何获取ManagedObjectContext

看看您的模型,您的实体的关系中有一个称为“删除规则”的东西,可能是 Deny,Nullify,Cascade和No Action。

来自苹果:

  

关系的删除规则指定如果   试图删除源对象。

所以您应该尝试的是注销后删除所有用户数据。

如果您想调试CoreData底层引擎上的所有动作,请在启动时传递的参数上放入您的Run方案

-com.apple.CoreData.SQLDebug 1