因为在开发过程中所有的耗时操作必须在主线程中执行,所以线程之间的通信很重要,以下是示例代码
#import "ViewController.h"
@interface ViewController ()
@property (strong, nonatomic) IBOutlet UIImageView *imageView;
@end
@implementation ViewController
-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
dispatch_queue_t queue=dispatch_queue_create("123", DISPATCH_QUEUE_SERIAL);
dispatch_async(queue, ^{
NSURL *url=[NSURL URLWithString:@"此处实际为需要下载的图片的链接地址,为了不用审核改成中文"];
NSData *data=[NSData dataWithContentsOfURL:url];
UIImage *image=[UIImage imageWithData:data];
NSLog(@"当前线程是%@",[NSThread currentThread]);
dispatch_async(dispatch_get_main_queue(), ^{
self.imageView.image=image;
NSLog(@"当前线程是%@",[NSThread currentThread]);
});
});
}
@end