我在xml解析endElement方法中有以下用于从url加载图像的代码:
food.image=strVal;
NSData *data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:strVal]];
UIImage *image=[[UIImage alloc]initWithData:data];
food.myImage=image;
虽然我在应用程序结束时使用此加载的图像,但我的应用程序必须等到所有图像都加载完毕。我应该在这里使用缓存,但我很困惑如何在此应用程序中使用缓存。还有其他办法吗?
答案 0 :(得分: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];
});
});