2012-12-28 113 views
0

如何從嵌套GCD調度返回?Objective-C從嵌套函數返回(GCD)

比方說,我有一個看起來像這樣的方法:

- (void)foo { 

    dispatch_async(queue, ^{ 

     if (flag) { 
      // I want out of here 
      return; 
     } 

     dispatch_sync(dispatch_get_main_queue(), ^{ 

      if (flag) { 
       // I want out of here 
       return; 
      } 
     }); 
    }); 
} 

當我裏面dispatch_sync函數和調用return;我想只會留下電流的功能,這樣我就需要調用return;再從dispatch_async

回答

1

是的,你的想法是正確的。每個塊都是一個單獨的函數,所以返回將僅從當前塊返回。如果你想提前退出dispatch_sync的塊,你需要再次檢查並在dispatch_sync後返回。

+0

乾杯,謝謝你的肯定:-) –