4

我正在开发一个 iPhone 应用程序,我需要在 for 循环中使用图像 url 从服务器下载 100-200 张图像。如下所示:

 NSOperationQueue *queue = [NSOperationQueue new];
        NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self
                                                                                selector:@selector(downloadImages:)
                                                                                  object:arrayTemp];
        [queue addOperation:operation];
        [operation release];
        [queue release];

-(void)downloadImages{

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];
UIImage *image;
for (int i=0; i < [self.ImagesRecords count]; i++)
{
    ImageData *data =(ImageData*) [self.ImagesRecords objectAtIndex:i];
    NSString *strName = [NSString stringWithFormat:@"image_%@",data.ID];
    image = [UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[@"http://abc.com" stringByAppendingString:data.PhotoPath]]]];
    if (image!=nil)
    {
        [self saveImage:image withName:strName];
    }
}
image = nil;
[pool release];
}

它工作正常,也给了我形象。

我的问题是:

  1. 如何在单个 XML 调用中获取多个图像数据?可能吗?
  2. 下载图像的最佳方式是什么?请提供一段代码。
  3. 有时我发现我的应用程序在此图像下载过程中卡住了一段时间。它的原因是什么?
4

1 回答 1

0
  1. 1个xml中的多个图像示例:
<xml>
    <info>
        <width>55</width>
        <height>41</height>
    </info>
    <image_data>
        <data>
            <name>Background</name>
            <data>data:image/png;base64,iVBORw0KGgoAAA...</data>
        </data>
        <data>
            <name>Layer #2</name>
            <data>data:image/png;base64,iVBORw0KGgoAAAANS...</data>
        </data>
        <data>
            <name>Layer #3</name>
            <data>data:image/png;base64,iVBORw0KGgoAAAANSUh...</data>
        </data>
    </image_data>
</xml>
于 2013-08-14T18:00:41.227 回答