2013-10-08 38 views
0

如何取消正在進行的NSManagedObjectContext performBlockAndWait進程?無論如何要這樣做。 我想取消用戶被刪除的情況,並且不想保存1000個條目。NSManagedObjectContext在performBlockAndWait中取消操作

[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 
     } 
    }]; 
+0

你在'performBlockAndWait'中有某種循環嗎? –

回答

2

您不要取消performBlockAndWait,這裏沒有API支持。

調用運行,直到您提供的塊完成。如果由於某種原因需要提前退出,則需要檢查塊內的標誌,並在標誌表示退出時停止工作。你不能強迫它從外面停下來;你需要完成並從內部退出。如果這不適用於您對performBlockAndWait的當前調用,那麼您可以重構該代碼,以便它可能或者適應當前的情況。