ошибка coredata persistentstorecoordinator: NSSQLiteErrorDomain = 522 - PullRequest
0 голосов
/ 21 февраля 2019

Я работаю с проектом 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 голосов
/ 22 февраля 2019

? удаление базы данных при выходе?Может быть, вы пытаетесь удалить все предыдущие данные пользователя.Вы должны прочитать немного больше о CoreData.Вы можете обнулять контекст, но не следует трогать координатора хранилища, потому что есть ссылка на модель, с которой вы работаете.

как вы можете получитьManagedObjectContext, когда хранилище назначено nil ?

взгляните на вашу модель, отношения вашей сущности имеют что-то под названием Delete Rules, может быть Deny,Nullify, Cascade и No Action.

от apple:

Правило удаления отношения определяет, что должно произойти, если будет предпринята попытка удалить исходный объект.

так что вы должны попробовать удалить все пользовательские данные после выхода из системы.

если вы хотите отлаживать каждое движение на базовом движке CoreData, включите эту схему в свою схему Run, в аргументы, переданные при запуске

-com.apple.CoreData.SQLDebug 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...