- (IBAction)downloadImageByNSThread:(id)sender {
//1.NSThead对象
NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(downloadImage) object:nil];
//2.执行下载逻辑
//3.启动子线程
[thread start];
}
- (void)downloadImage {
//NSSting -> NSURL -> NSData -> UIImage
NSString *imageStr = @"http://www.egouz.com/uploadfile/2015/0305/20150305103626911.jpg";
NSURL *imageUrl = [NSURL URLWithString:imageStr];
//如下方法是耗时的操作
NSData *imageData = [NSData dataWithContentsOfURL:imageUrl];
UIImage *image = [UIImage imageWithData:imageData];
/*由子线程回到主线程,赋值给imageView
主线程执行任务优先级高于子线程任务
*/
//子线程回到主线程方式一(理解)
[self performSelectorOnMainThread:@selector(returnMainThread:) withObject:image waitUntilDone:YES];
NSLog(@"35345");
}
- (void)returnMainThread:(UIImage *)image {
NSLog(@"赋值:%@", [NSThread currentThread]);
self.imageView.image = image;
}
NSThread执行下载图片操作
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 简述在前两章都只是介绍如何使用NSThread以及它的一些方法、状态,那么这一章我们来一个比较有意思的东西:使用多...
- 一、NSBundle 工程中所有的资源文件 编译文件 二、上传图片到服务器 项目:upload05091.客户端和...
- 最近优化项目中,TableView滑动时不加载,停止滑动才加载图片,在iOS项目开发中是非常常见的。本文章中就不重...
- 为了应付小学一年级的作业才写下的,其实虽是亲生姐妹,却毫无感情关系可言。 我们就像是出生在一个家庭不同时期的两个单...