【问题标题】:NSManagedObjectContext cancel operation while in performBlockAndWaitNSManagedObjectContext 在 performBlockAndWait 中取消操作
【发布时间】:2013-10-08 10:01:17
【问题描述】:

如何取消正在进行的 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
        }
    }];

【问题讨论】:

  • performBlockAndWait 中是否存在某种循环?

标签: iphone core-data nsmanagedobjectcontext


【解决方案1】:

你没有取消performBlockAndWait,没有API支持这个。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 2017-04-25
    • 2012-09-26
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    相关资源
    最近更新 更多