Skip to content

NSThreadを使って、非同期通信のようなことをする

2011年9月13日

NSURLConnectionを使って非同期通信はよくやるけど、2つの情報がセットでほしい、なんてときにConnectionを使うと、別々で情報が返って来るから扱いにくい。

ましてや、一気に複数のセット情報を得ようとするときなんて、順番がばらばらで使ってらんない。

そんな時に、別スレッドを作って、その中で同期通信すれば、非同期みたいな動きができるぞ!という話です。

やり方はそんな難しくなくて、

[NSThread detachNewThreadSelector:@selector(hogehoge:) toTarget:self withObject:object];

で別スレッドを作成

そのhogehogeで処理を書きます。

そしてそこで得た情報をいざそのメソッド内でメインスレッドのオブジェクトにそのまま使おうとすると、スレッドの衝突でエラーになっちゃったりします。

そこで「performSelectorOnMainThread」を使って、メインのスレッドに情報を渡して使ってやればOK!

performSelectorOnMainThreadの存在を知らなくて1時間くらいハマってた…。

広告

From → iPhone開発

コメントする

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。