как использовать: - (void) saveErrorHandler:(void (^)(NSError *))errorCallback;

У меня есть функция от Magical Record, которую я пытаюсь использовать. Однако я не понимаю, как использовать часть обработчика ошибок

функция такова: - (void) saveErrorHandler:(void (^)(NSError *))errorCallback;

Я не понимаю часть "(void (^)(NSError *))errorCallback". Я знаю, что это стандартная задача c. Как мне использовать эту функцию в моем коде с errorCallback, чтобы я мог извлечь сообщение об ошибке?


person ngb    schedule 25.11.2012    source источник


Ответы (1)


 [self saveErrorHandler:^(NSError * error) {
    //NSError code handler
}];

вот как вы реализуете функцию.

person Janub    schedule 25.11.2012
comment
это дает мне [NSManagedObjectContext saveErrorHandler:]: нераспознанный селектор отправлен экземпляру, есть ли что-то, что мне не хватает? - person ngb; 25.11.2012
comment
где объявление функции? - person Janub; 25.11.2012
comment
он находится в категории NSManagedObjectContext+MagicalSaves.h. Я могу использовать стандартную функцию сохранения -(void), поэтому я считаю, что она включена правильно. файл заголовка находится здесь: github.com/ magicpanda/MagicalRecord/blob/master/MagicalRecord/ - person ngb; 25.11.2012
comment
Похоже, это ошибка в Magical Records. Функция объявлена, но нигде не реализована. Вместо этого вы можете использовать MR_saveWithErrorCallback. - person Martin R; 25.11.2012
comment
Чтобы он работал без MR_, вам нужно #define MR_SHORTHAND 1 перед вашим #import CoreData+MagicalRecord.h. Я думаю, что этот ответ правильный. У меня есть другой проект, использующий волшебную запись, в которой это работает. Похоже, моя проблема, вероятно, заключается в том, что компоновщик xcode неправильно связывает библиотеку (вероятно, он случайным образом исправит себя после нескольких перезагрузок, как обычно). - person ngb; 28.11.2012