NSURLConnection は、メインスレッド上で生成しないと、機能してくれない。
[2009.04.19 12:00 追記] Norio Nomura さんより、コメントにて、非同期モードには RunLoop が必要で、メインスレッドだと RunLoop がひとつ稼働しているために問題なく動作するという解説をいただきました。Norio Nomura さん、ありがとうございました。
NSURLConnection 非同期モードの注意NSURLConnection は、メインスレッド上で生成しないと、機能してくれない。 [2009.04.19 12:00 追記] Norio Nomura さんより、コメントにて、非同期モードには RunLoop が必要で、メインスレッドだと RunLoop がひとつ稼働しているために問題なく動作するという解説をいただきました。Norio Nomura さん、ありがとうございました。 2件のコメントがあります。コメントを書くトラックバックはありません。トラックバックURL: http://numata.designed.jp/mt-tb.cgi/202 |
正確には「RunLoopが動いていないと機能しない」ですね。メインスレッド以外でも、自前でRunLoopを処理するコードを書いてやれば、NSURLConnectionの非同期モードは動きます。普通はメインスレッドのRunLoopはUIApplicationなどで既に動いているため、RunLoopを処理するコードを書かなくても、NSURLConnectionの非同期モードが動きます。
なるほど!
ありがとうございます。
ようやく仕組みと問題の本質を理解しました。