//在主线程使用这种耗时的方法会消耗主线程,所以需要使用到子线程来回调
NSDate *begin = [NSDate date];
NSURL *url = [NSURL URLWithString:IMAGE_URL];
NSDate *end = [NSDate date];
NSData *data = [NSData dataWithContentsOfURL:url];
NSLog(@"%f",[end timeIntervalSinceDate:begin]);
self.imageView.image = [UIImage imageWithData:data];
//线程通信----由子线程回归到主线程
NSURL *url = [NSURL URLWithString:IMAGE_URL];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data];
//方法一
[self performSelectorOnMainThread:@selector(loadImage:) withObject:image waitUntilDone:YES];
//方法二
[self performSelector:@selector(loadImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:NO];
//方法三
[self.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:NO];
//然后通过调用的方法传值
- (void) loadImage:(id)obj {
self.imageView.image = obj;
}