Как сохранить контекст после импорта данных с помощью MagicalImport?

Я импортировал массив json, используя метод MR_importFromArray MagicalImport (версия 2.1). Я пытаюсь получить импортированные NSManagedObjects с помощью MR_findAll без какого-либо успеха. Вот варианты, которые я пробовал до сих пор:

//Attempt 1
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
  [Thread MR_importFromArray:threadsData];
} completion:^(BOOL success, NSError *error) {
  NSArray *allThreads = [Thread MR_findAll];
}];

//Attempt 2
[MagicalRecord saveUsingCurrentThreadContextWithBlock:^(NSManagedObjectContext *localContext) {
  [Thread MR_importFromArray:threadsData inContext:localContext];
} completion:^(BOOL success, NSError *error) {
  NSArray *allThreads = [Thread MR_findAllInContext:[NSManagedObjectContext MR_contextForCurrentThread]];
}];

//Attempt 3
NSManagedObjectContext *context =[NSManagedObjectContext MR_defaultContext];
 [Thread MR_importFromArray:threadsData inContext:context];
[context MR_saveToPersistentStoreAndWait];
NSArray *allThreads = [Thread MR_findAllInContext:context];

//Attempt 4
[Thread MR_importFromArray:threadsData];
[[NSManagedObjectContext MR_contextForCurrentThread] MR_saveToPersistentStoreAndWait];
NSArray *allThreads = [Thread MR_findAll];

И вот ошибка, которую я вижу в консоли:

-[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:](0xb2566e0) NO CHANGES IN ** DEFAULT ** CONTEXT - NOT SAVING

Есть идеи, что я делаю не так?

2 ответа

Решение

Нашел ответ. Похоже, есть ошибка в MR_importFromArray. Когда я вручную перебираю объекты и сохраняю их в контексте, все работает нормально. Вот как:

[MagicalRecord saveUsingCurrentThreadContextWithBlock:^(NSManagedObjectContext *localContext) {
  [threadsData enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [Thread MR_importFromObject:obj];
  }];
} completion:^(BOOL success, NSError *error) {
  NSArray *allThreads = [Thread MR_findAll];
}];
[[NSManagedObjectContext MR_defaultContext]saveToPersistentStoreAndWait];
Другие вопросы по тегам