非同期通信を行う場合、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]; |