1

我有以下代码用于在 xml 解析 endElement 方法中从 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 回答