1

サーバー上に存在する画像を指す配列または URL があります。各行に4つの画像があるスクロールビューに画像を表示したいと思います。NSOperationQueue と NSInvocationOperation を使用して画像を非同期でダウンロードすることを考えています。次の URL を参照として使用しています:
http://www.switchonthecode.com/tutorials/loading-images-asynchronously-on-iphone-using-nsinvocationoperation

しかし、複数の画像をダウンロードする方法がわかりません。複数の NSInvocationOperation オブジェクトで for ループを実行し、それを NSOperationQueue オブジェクトに追加する必要がありますか?

私は自分の仕事を達成するためのガイダンスを探しています。

編集: 私は次のことを行いましたが、NSOperationQueueはNSInvocationOperationオブジェクトを呼び出すことができません

NSOperationQueue *queue = [NSOperationQueue new];
for(int i = 0;i<rowcount;i++){
    for(int j =0; j<4;j++){
        UIButton *btnAlbum = [[UIButton alloc] initWithFrame:CGRectMake(x, y, 72, 72)];
        [btnAlbum setBackgroundImage:[UIImage imageNamed:@"placeHolder.png"] forState:UIControlStateNormal];
        btnAlbum.tag = count+100;
        //[btnAlbum addTarget:self action:@selector(viewAlbum:) forControlEvents:UIControlEventTouchUpInside];
        [scrlvw addSubview:btnAlbum];
        //[btnAlbum release];
        x = x + 80;
        count++;

        NSInvocationOperation *operation = [[NSInvocationOperation alloc] 
                                            initWithTarget:self
                                            selector:@selector(loadImage) 
                                            object:nil];

        [queue addOperation:operation]; 
        [operation release];
    }
    x = 0;
    y = y +80;
}

ありがとうござい
ます

4

3 に答える 3

1

ASIHTTPRequestが私を救ってくれて、簡単にタスクを実行することができました。

于 2012-01-16T10:23:35.523 に答える
1

はい -- ダウンロードするイメージごとに、実行時にイメージをダウンロードするルーチンを呼び出す NSInvocationOperation を作成します。NSInvocationOperation がキューに追加され、独自のスレッドで NSInvocationOperation を実行します。

必要なキューは 1 つだけですが、ダウンロードごとに新しい NSInvocationOperation が必要です。

于 2012-01-11T07:43:59.650 に答える
0

ブロックと Grand Central Dispatch を使用してこれらの画像をロードしてみませんか? この投稿をチェックして、それがうまくいくかどうかを確認してください。

于 2012-01-11T12:56:46.177 に答える