NSOperationQueue の処理が実行できない場合

非同期通信を行う場合、NSOperation, NSOperationQueue を利用するかと思いますが、なぜか動かない…と調査したところ、iOS 4より NSOperationQueue の仕様が変更されているとのこと。
以下の様にすることで iOS 4 でも動作しました。

しかしながら、iOS 4 で動作するコードは、iPad 3.2 Simulator では問題があるようなので、respondsToSelector で判断し、処理を変更する必要があるみたいです。

1
2
3
// iOS4 からメッソドが変更され、メインスレッドに明示的に関連づける必要がある
//    _queue = [[NSOperationQueue alloc] init];
_queue = [NSOperationQueue mainQueue];

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です