Магическая запись saveWithBlock: не сохранение

У меня возникают проблемы с сохранением моих объектов с помощью метода [MagicalRecord saveWithBlock: завершение]. Когда я переключаюсь на использование обычных блоков, он отлично работает. Использование версии 2.2develop.

Ниже приведен код, и я прокомментировал saveWithBlock: конкретные части. Метод executeBlock …: методы просто переносят dispatch_async и executeBlockOnMainThread: заменяет блок завершения:.

[card.managedObjectContext MR_saveToPersistentStoreAndWait]; //[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) { // Replace this... [NSObject executeBlockInBackground:^{ // With this... Card *localCard = [card MR_inContext:[NSManagedObjectContext MR_contextForCurrentThread]]; // MR_inContext:localContext]; NSRange range = [localCard.fragment rangeOfString:localCard.term options:NSCaseInsensitiveSearch]; if (range.location == NSNotFound){ return; } NSString *fragmentString = [localCard.fragment stringByReplacingOccurrencesOfString:@" " withString:@"+"]; NSString *url = [NSString stringWithFormat:@"https://www.lingq.com/api/languages/%@/phrases/?word=%@&frag=%@&start=%@", appDelegate.currentLanguage, localCard.term, fragmentString, @(range.location)]; NSMutableURLRequest *request = [LQAPI requestForURL:url body:nil HTTPMethod:@"GET"]; NSData *response = [LQAPI executeURLRequest:request]; NSDictionary *responseDictionary = [LQAPI dictionaryFromJSONData:response]; if (responseDictionary == nil){ return; } NSArray *phrases = [responseDictionary objectForKey:@"phrases"]; NSMutableArray *cards = [NSMutableArray array]; int index = 0; for (NSDictionary *d in phrases){ Card *c = [self cardFromDictionary:d content_id:localCard.content_Id index:index type:BlueCard]; c.parentID = localCard.mId; // This marks it as a phrase [cards addObject:c]; index++; } [localCard.managedObjectContext MR_saveToPersistentStoreAndWait]; // This shouldn't be necessary using saveWithBlock: and it didn't help when I tried it. NSPredicate *predicate = [NSPredicate predicateWithFormat:@"parentID = %@", localCard.mId]; NSArray *phrases2 = [Card MR_findAllWithPredicate:predicate]; // All the objects appear fine here [NSObject executeBlockOnMainThread:^{ // This would have been in the completion block below NSPredicate *predicate = [NSPredicate predicateWithFormat:@"parentID = %@", card.mId]; NSArray *phrases = [Card MR_findAllWithPredicate:predicate]; // This does find phrases [delegate didFetchPhrases:phrases forCard:card]; }]; }]; /* completion:^(BOOL success, NSError *error) { NSPredicate *predicate = [NSPredicate predicateWithFormat:@"parentID = %@", card.mId]; NSArray *phrases = [Card MR_findAllWithPredicate:predicate]; // This doesn't find any phrases [delegate didFetchPhrases:phrases forCard:card]; }];*/ 

2 Solutions collect form web for “Магическая запись saveWithBlock: не сохранение”

В конце концов, это была моя вина (конечно!). Метод cardFromDictionary: использовал MR_contextForCurrentThread. Передача этого localContext решила проблему.

В Github я обнаружил, что выборка во время saveWithBlock: нет: https://github.com/magicalpanda/MagicalRecord/issues/339

  • Сохранение основных данных в нескольких потоках
  • Как запустить iCloud с помощью MagicalRecord (Core Data)?
  • Перенос основных данных с помощью MagicalRecord - добавьте атрибут и заполните его
  • Обычные данные ядра и основные данные + магическая запись
  • Как настроить легкую миграцию Core Data с помощью MagicalRecord?
  • MagicalRecord: удалить все данные и установить базовый стек данных снова
  • Магическая запись, перенос основных данных для выпущенного приложения в Appstore
  • NSUserDefaults или что-то еще при хранении больших массивов?
  • Шифрование основных данных с помощью MagicalRecord
  • какая разница между методом MR_saveToPersistentStoreWithCompletion и методом MR_saveToPersistentStoreAndWait в MagicalRecord
  • правильный способ сохранить NSManagedContext с последней версией Magical Record
  • Interesting Posts

    Добавить пользовательский путь в HEADER_SEARCH_PATHS с помощью CocoaPods post install hook

    увеличьте высоту UIProgressView при ее использовании как titleView в панели навигации

    Как обрезать (удалить) пробелы с конца NSAttributedString

    Расстояние UIPanGestureRecognizer

    Проблема сборки OpenCV, не может найти ext / atomicity.h

    Как добавить место в начале UITextField

    Недопустимая подпись – объект кода не подписан вообще

    Что мне нужно сделать, чтобы получить функцию, вызванную в оптимизированном коде компилятора?

    CoreData Stack Vs UIManagedDocument для приложений iCloud

    Не удалось определить сгенерированные пути к файлу для генерации кода coreData

    Google Диск и iOS8 UIDocumentPickerViewController – файл недоступен

    iOS: изменение info.plist во время фазы сборки

    Учетная запись Apple id, принадлежащая двум командам, получает «У вашей учетной записи уже есть действительный сертификат распространения iOS»

    Разность UIWebView между iOS 4 и iOS 5 при чтении pdf-файла

    Заполнитель не принимает NSTextAlignmentNatural

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.