1

endElementメソッドを解析するxmlでURLから画像をロードするための次のコードがあります:

food.image=strVal;
NSData *data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:strVal]];
UIImage *image=[[UIImage alloc]initWithData:data];
food.myImage=image;

アプリケーションの最後にこのロードされた画像を使用していますが、アプリケーションはすべての画像がロードされるまで待機する必要があります。ここではキャッシュを使用することになっていますが、このアプリケーションでキャッシュを使用する方法がわかりません。他に方法はありますか?

4

1 に答える 1

0

このコードを試してみてください。これにより、メインスレッドに負荷がかかることはありません。-

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);

dispatch_async(queue, ^{

    NSData *data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:yourURL]];
    UIImage *image=[[UIImage alloc]initWithData:data];

    dispatch_sync(dispatch_get_main_queue(), ^{
        [yourImageView setImage:image];

    });
});
于 2012-06-19T10:53:56.937 に答える