4

forループで画像URLを使用してサーバーから100〜200枚の画像をダウンロードする必要があるiPhoneアプリに取り組んでいます。次のように:

 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. 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 に答える