0

NSURLConnectionWeb サービスから JSON をダウンロードし、UITableView. ビュークラスですべてのコードがうまく機能していますが、NSURLConnection他のクラスでメソッドを使用できるかどうか疑問に思っていましたか?

たとえば、次のようなものです。

NSURLConnectionClass *connection = [[NSURLConnectionClass alloc] init];
NSArray *myDataArray = [connection withURL: [NSURL URLWithString: @"http://www.example.com"]];
// Reload table with new data

NSURLConnection は非同期であるため、これは機能しないことに気付きましたが、他に何か試すことができるかどうか疑問に思いました。基本的に、データをダウンロードするすべてのビューでコードを繰り返さないようにしています。

4

1 に答える 1

1

カスタム接続クラスのデリゲート プロトコルを作成できます。このようにして、非同期でダウンロードし、完了したらコールバックできます。コールバックにブロックを使用するとさらに良いでしょう。このパターンは、一般的な ASIHttpRequest クラスで使用されます。

このクラスをテーブル ビューのデリゲートおよびデータ ソースにすることもできます。この方法では、[tableview reloadData]読み込みが完了したときにのみ呼び出す必要があります。欠点は、これにより MVC パターンが少し混乱することです。

于 2012-08-21T13:58:29.783 に答える