MagicalRecord saveWithBlock - 如何取消操作

时间:2015-05-05 07:12:28

标签: ios magicalrecord-2.2

我使用MagicalRecord方法使用saveWithBlock:

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

如果我想取消该区块内的保存操作,我该如何实现?

E.g。当用户登录时,我有一个长时间运行的下载/同步操作 - 如果用户在此操作期间注销,我想取消saveWithBlock:

中的保存

1 个答案:

答案 0 :(得分:0)

如果您要执行取消,请不要将更改包装到MagicalRecord saveWithBlock中。您可以简单地使用Context performBlock API,如果您不满意,可以放弃更改。

[context performBlock:^{
    // some work
    // ...
    if(timeToCancel) {
      [context reset];
    } else {
      [context MR_saveToPersistentStoreWithCompletion:nil];
    }
}];