如何在iOS中将UIImage对象添加到NSMutableArray中

时间:2015-06-14 10:50:00

标签: ios objective-c uiimageview uiimage nsmutablearray

我正在尝试将UIImage个对象添加到数组中,但它们没有被添加。请帮忙

我的代码:

imageArray = [[NSMutableArray alloc] init];
arry = [[NSMutableArray alloc] init];

[arry addObject:@"http://adjingo.2cimple.com/content/151/Image/6291.jpg"];
[arry addObject:@"http://adjingo.2cimple.com/content/151/Image/6290.jpg"];

//Fetch images from web and store in another array
for (int i=0; i<[arry count]; i++)
{
    NSString *string=[arry objectAtIndex:i];
    NSURL *url=[NSURL URLWithString:string];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:request
                                   queue:[NSOperationQueue mainQueue]
                       completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
                           if ( !error )
                           {
                               UIImage *image = [[UIImage alloc] initWithData:data];

                               //Store image in imageArray
                               [imageArray insertObject:image atIndex:i];

                           } else{

                           }
                       }];
}

NSLog(@"%lu",(unsigned long)[imageArray count]); //this line is always showing 0 as count

当我打印包含count个对象的数组的UIImage时,显示 0

(我实际上想在阵列中一次下载图像,然后以幻灯片形式显示为UIImageView)。

请指导我。谢谢!

1 个答案:

答案 0 :(得分:1)

有几个问题。

  1. [NSMutableArray arrayWithCapacity:size]不分配内存,并且无法添加超出当前大小的项目。 NSMutableArray确实分配内存,并且可以在任何索引处插入对象,包括当前大小。请参阅sendAsynchronousRequest文档。

  2. 在{{1}}阻止后,没有下载任何图片,这将在下载完成时发生。

  3. 一次启动大量下载可能会出现性能问题。