0

私が持っているのは、カスタム UITableViewCells で満たされた UITableViewController を持つアプリです。セルにフィードするためのデータがいくつかありますが、追加のコンテンツ (写真など) をダウンロードする必要があります。

viewDidLoad メソッドで行うことは、UITableViewCell オブジェクトを初期化し、すべてのラベルに既に利用可能な情報を入力することです。次に、cell クラスのメソッドの 1 つを起動して、データをダウンロードします。特定のセルを処理したら、それを NSMutableArray に入れ、次のセルに進みます。

次に cellForRowAtIndexPath メソッドで、可変配列から特定のインデックスのセルを返します。

何が起こるかというと、すべてのデータがダウンロードされない限り、私の tableView が動かなくなるということです...これが正しいアプローチであるかどうかはわかりませんが、ダウンロードして余分なコンテンツを埋めるメソッドを起動する必要があると思います別のスレッドのセル。どうやってやるの?

よろしくお願いします!

4

1 に答える 1

0

rckoenes が示唆するように、AFNetworking を使用すると機能します。:) まだ ARC を使用していない人にとっては、代替手段は ASIHTTPRequest になると思います。

画像をダウンロードするための私のコードは次のとおりです。

-(void)getImageFromUrl:(NSURL *)url{
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    AFImageRequestOperation *op = [AFImageRequestOperation imageRequestOperationWithRequest:request imageProcessingBlock:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *img) {
        [self.image setImage:img];

    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {

    }];
    [op start];
}
于 2012-11-01T14:00:32.070 に答える