我有一个数组或URL指向服务器上存在的图像。现在,我想在滚动视图中显示图像,每行显示4张图像。我正在考虑使用NSOperationQueue和NSInvocationOperation异步下载图像。我正在使用以下网址作为参考:
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;
}

谢谢
潘卡伊

最佳答案

是的-为每个要下载的映像创建一个NSInvocationOperation,执行时将调用下载映像的例程。 NSInvocationOperation已添加到队列,该队列负责在其自己的线程上执行NSInvocationOperation。

您只需要一个队列,但是每次下载都需要一个新的NSInvocationOperation。

07-24 09:47