2012-03-26 71 views
1

我寫了一個異步調用,它有一個完成塊來返回一個UIImage,然後在完成塊中視圖控制器設置一個UIImageView來使用該圖像。我的問題是如果該視圖控制器彈出UINavigationController堆棧並且在完成塊執行前不再活動會發生什麼?Objective C--完成塊和視圖控制器被彈出堆棧

[MyAPI getImage:imageID completionBlock:^(MyAPIStatus status, id result) { 
     if (status == kSuccessful) { 
      self.ImageView.image = [UIImage imageWithData:result]; 
     } 
    }]; 

回答

4

因爲傳遞給您的API的塊捕獲(保留)self,self將會活着。 因此,如果您正確使用保留/釋放或使用ARC,這是無害的。

0

最有可能的是EXC_BAD_ACCESS。您的API應該可能有另一種方法來取消可以在視圖控制器解除分配時調用的異步任務。

相關問題