これはNSURLConnectionを使用して行うことができますが、コードはかなり複雑です。
バックグラウンドスレッドで非同期Webリクエストを作成するための簡単なクラスを作成しました。 https://github.com/nicklockwood/RequestQueue
jsdが提案したNSOperationQueue(NSOperationQueueで実際に使用することができます)と同様の方法で動作しますが、使用する方が簡単だと思います。ここで
は、あなたが私のクラスを使用して、ビューコントローラからのリクエストをするだろうかです:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://someurl?foo=bar"]];
[[RequestQueue mainQueue] addRequest:request completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
//do something with the response
}];
それはブロックを使用しているので、あなたは、デリゲートメソッドを作成する必要はありません、あなたは自分の処理コードを置くことができますコールバックの中に直接(私は "応答で何かをする"というコメントを書いています)。
このコールバック内のコードはメインスレッドで呼び出されるため、そこでUIを更新することはできますが、バックグラウンドでダウンロードが完了した後、リクエストを実際に開始すると数秒後に呼び出されますデリゲートメソッドのように。
+1を共有します。好奇心の理由から、MKNetworkKit/AFNetworking/ASIHTTPRequestを "再実装"したのはなぜですか?言い換えれば、あなたの実装をそれらと区別させるものは何ですか? – Till
ASIは放棄されましたが、AFNはARCとMKNをサポートしていません...今まで聞いたことはありませんでした;-)そのほかに、彼らはすべて "キッチンシンク"ソリューションです - 私は大規模なフレームワークが好きではありませんすべて、私は、私がミックスして一致させることができる単一目的のライブラリを好む。 –