2012-03-26 9 views
1

UIImageを返すための補完ブロックを持つ非同期呼び出しを作成しました。補完ブロックでは、ビューコントローラがその画像を使用するようにUIImageViewを設定します。私の質問は、そのビューコントローラがUINavigationControllerスタックからポップされ、完了ブロックが実行される前にもはや生きていない場合、どうなるでしょうか?目的C - 補完ブロックとビューコントローラがスタックからポップされる

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

答えて

4

APIに渡されたブロックがselfをキャプチャ(保持)するため、selfが有効になります。 したがって、retain/releaseを適切に使用するかARCを使用すると、これは無害です。

0

おそらくEXC_BAD_ACCESSです。 APIには、ビューコントローラーの割り当てを解除するときに呼び出すことができる非同期タスクを取り消す別の方法があるはずです。

関連する問題