2011-08-05 14 views
1

私はiPhoneの開発が初めてで、非同期イベントに関する質問をしたいと思います。iPhone開発 - メインスレッド

私がNSURLConnectionを持っていて、それに対応する委任方法、すなわち、 didReceiveResponsedidFailWithErrorなどです。これらのメソッドは、イベントが発生すると非同期に呼び出されます。すべてのメソッドがメインスレッドで実行されていますか?または、iOSは対応するメソッドコードを実行する個別のスレッドを作成しますか?

私はアプリにランダムなクラッシュが発生していますが、同期の問題であると思います。

答えて

2

NSURLConnectionのデリゲートメソッドは、メインスレッドで実行されます。これは、非同期であることの背後にある全体の理由であり、別個のスレッドを持つ必要はありません。

内部については、I/Oは本質的に非同期な世界なので、内部的にはNSURLConnectionがスレッドを使用しているとは考えていません。私はそれが非同期の方法でコミュニケーションを管理するのはOSだと思いますが、私はそれについては分かりません。

とにかく、デリゲートメソッドがメインスレッド内から実行されていることを確認できます。