После перезапуска приложения данные из данных ядра не возвращаются должным образом. И запрос на выборку для получения определенной записи также терпит неудачу. FetchRequestController не захватывает какую-либо запись после повторного запуска приложения.Не удалось получить предыдущие данные с EncryptedCoreData
Я использую encrypted-core-data для защиты данных в моем проекте. Я могу анализировать и сохранять данные в managedObjectContext. Мой код выглядит следующим образом:
for (NSDictionary *data in categories) {
//Use MagicRecord api to get a record
CMCategories *Obj = [CMCategories MR_findFirstByAttribute:@"uniqueId"
withValue:[data valueForKey:@"id"]
inContext:managedObjectContext];
if (!Obj) {
Obj = [CMCategories MR_createEntityInContext:managedObjectContext];
}
Obj.name = [data valueForKey:@"CategoryName"];
Obj.language = [data valueForKey:@"LanguageCode"];
Obj.uniqueId = [data valueForKey:@"id"];
}
NSError *error = nil;
if (![_managedObjectContext save:&error]) {
NSLog(@"Error saving context: %@\n%@", [error localizedDescription], [error userInfo]);
abort();
}
Код работает без ошибок. Мой persistentStoreCoordinator
и managedObjectContext
код такой же, как this
Когда я распечатать OBJ перед закрытием приложения печатает
2016-01-24 23:59:11.806 Chare Dev[10556:158617] <CMCategories: 0x7feb00d24a90> (entity: CMCategories; id: 0x7feb02ef5890 <x-coredata://B947ACD3-E248-4D4F-B81E-236E100BB34D/CMCategories/p5> ; data: {
channels = (
);
language = en;
name = Professional;
order = 0;
uniqueId = 15;
})
Но после перезапуска приложения, когда мы забираем все объекты и печати печатает как этот
2016-01-24 23:59:11.795 Chare Dev[10556:158617] <CMCategories: 0x7feb02de4aa0> (entity: CMCategories; id: 0x7feb02de5c10 <x-coredata://B947ACD3-E248-4D4F-B81E-236E100BB34D/CMCategories/p2> ; data: {
channels = "<relationship fault: 0x7feb02922450 'channels'>";
language = nil;
name = nil;
order = nil;
uniqueId = nil;
})
И если я пытаюсь получить свойство NSString *string = obj.uniqueId
2016-01-24 23: 59: 11,795 Chare Дев [10556: 158617] CoreData: предупреждение: NSManagedObjectContext делегата отменяет неисправности обработки поведения молча удалить объект с ID '0x7feb02de5c10 ' и заменителем ноля/0 для все значения свойств вместо метания
Если я использую NSSQLiteStoreType
вместо EncryptedStoreType
все работает отлично. Можете ли вы направить меня, что я делаю неправильно?
Поскольку из-за вышеуказанной проблемы записи базы данных добавляются несколько раз, а запрос на выборку не удается получить управляемый объект с помощью uniqueId.