在performBlockAndWait中,NSManagedObjectContext取消操作

时间:2013-10-08 10:01:17

标签: iphone core-data nsmanagedobjectcontext

如何取消正在进行的NSManagedObjectContext performBlockAndWait进程?无论如何要做到这一点。 如果用户被删除并且不想保存1000个条目,我想取消。

[context performBlockAndWait:^{
        NSError *childError = nil;
        if ([context save:&childError])
        {
            [context.parentContext performBlockAndWait:^{
                NSError *parentError = nil;
                if ([context.parentContext save:&parentError])
                {
                    // something here
                }
                else
                {
                    // error
                }
            }];
        }
        else
        {
            // error
        }
    }];

1 个答案:

答案 0 :(得分:2)

您不会取消performBlockAndWait,因此没有API支持。

调用将一直运行,直到您提供的块完成。如果由于某种原因需要提前退出,则需要检查块内的标志并在标志表示是时候退出时停止工作。你不能强迫它从外面停下来;你需要完成并从内部退出。如果这对您当前对performBlockAndWait的调用不起作用,您可以重构该代码以使其可能或者与当前情况一起使用。