MagicalRecord saveWithBlock - как отменить операцию

Я использую MagicalRecord с этими saveWithBlock: метод:

[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
    // some work
    // ...
    // -> ups! I changed my mind, I don't want to save!
}];

Если я хочу отменить операцию сохранения внутри этого блока, как я могу этого добиться?

Например, у меня есть длительная операция загрузки / синхронизации, когда пользователь входит в систему - если пользователь выходит из системы во время этой операции, я бы хотел отменить сохранение внутри saveWithBlock:

1 ответ

Если вы хотите выполнить отмену, не оборачивайте свои изменения в MagicalRecord saveWithBlock, Вы можете просто использовать контекст performBlock API и откажитесь от изменений, если вас это не устраивает.

[context performBlock:^{
    // some work
    // ...
    if(timeToCancel) {
      [context reset];
    } else {
      [context MR_saveToPersistentStoreWithCompletion:nil];
    }
}];
Другие вопросы по тегам