多くの長時間実行される非同期メソッドには、入力パラメーターとして完了ハンドラー ブロックがアタッチされています。
操作がキャンセルされた場合に完了ハンドラーを呼び出す必要があるかどうかはわかりません。
-(void)longRunningAsyncOperation:(Input *)input completionHandler:(Block)completionHandler
{
// long running code
// periodic checks for cancelation
if(_canceled)
{
// should completion handler still be called?
return;
}
// more long running code
// completed
completionHandler(someData);
}