更新UI的操作在IOS中其实和在Android中是一致的,都是不能在主线程中执行比较耗时的操作,所以需要开启新线程去做这些操作,以免阻塞主线程,当新线程中的操作完成之后,调用主线程来更新UI。下面就是一个这样的例子:

1、声明ImageView控件

1 #import <UIKit/UIKit.h>
2
3 @interface DemoDispatchQueueViewController : UIViewController
4 @property(nonatomic,strong) UIImageView *imageView;
5 @end

2、完成功能

 1 #import "DemoDispatchQueueViewController.h"2 3 @interface DemoDispatchQueueViewController ()4 5 @end6 7 @implementation DemoDispatchQueueViewController8 @synthesize imageView;9 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
10 {
11     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
12     if (self) {
13     }
14     return self;
15 }
16
17 - (void)viewDidLoad
18 {
19     [super viewDidLoad];
20     // Do any additional setup after loading the view.
21     self.title = @"GCD Demo";
22
23     self.imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, 10, 300, 380)];
24
25     self.imageView.contentMode = UIViewContentModeScaleToFill;
26
27     [self.view addSubview:imageView];
28
29     [NSThread detachNewThreadSelector:@selector(loadImageByUrl:) toTarget:self withObject:@"http://image.rayliimg.cn/0008/2009-01-15/images/2009115135825184.jpg"];
30
31 }
32
33 -(void) loadImageByUrl:(NSString *) imageUrl
34 {
35     NSLog(@"url is :%@",imageUrl);
36     NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:imageUrl]];
37     UIImage *image = [UIImage imageWithData:data];
38
39     if(image != nil){
40         [self performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];
41     }else{
42         NSLog(@"无法载入相应的图片");
43     }
44 }
45 -(void) setImage:(UIImage*) image{
46     [self.imageView setImage:image];
47 }
48
49
50 - (void)didReceiveMemoryWarning
51 {
52     [super didReceiveMemoryWarning];
53     // Dispose of any resources that can be recreated.
54 }
55
56 @end

转自 http://www.cnblogs.com/xinye/archive/2013/03/31/2991190.html

转载于:https://www.cnblogs.com/huanglong/archive/2013/05/22/3092168.html

IOS多线程 - 使用线程加载一张图片 - NSThread(1)(转)相关推荐

  1. Cocos2d-x教程(36)-多线程与异步加载

    欢迎加入Cocos2d-x 交流群:193411763 转载时请注明原文出处 :http://blog.csdn.net/u012945598/article/details/41312345 --- ...

  2. Cocos2d-x的多线程与异步加载实现详解

    Cocos2d-x是一个单线程循环的引擎,引擎通过每一帧之间更新游戏中各元素的状态,以保证它们之间互不干扰,这个过程中尽管看起来成程序像是 在并行运行,但实际上却是一个串行过程. 举例来说,在游戏进行 ...

  3. Android Bitmap 全面解析(二)加载多张图片的缓存处理

    一般少量图片是很少出现OOM异常的,除非单张图片过~大~ 那么就可以用教程一里面的方法了 通常应用场景是listview列表加载多张图片,为了提高效率一般要缓存一部分图片,这样方便再次查看时能快速显示 ...

  4. flask keras 多线程环境下加载模型

    keras 多线程环境下加载模型 Tensor Tensor is not an element of this graph. 问题场景 keras 使用flask 发布深度学习模型服务,模型有一个定 ...

  5. 列表异步线程加载图片

    手机客户端以列表形式展示数据是非常常见的一种方式.然而列表中要显示图片(比如:头像)就要采用异步线程加载的方式,这样做是为了防止加载图片数据的时候,花费时间过长,阻塞UI线程,从而达到保持App的流畅 ...

  6. iOS控制器与视图加载方法

    转载记录, 请看原文: 1. iOS中的各种加载方法(initWithNibName,loadNibNamed,initWithCoder,awakeFromNib等等)简单使用   http://w ...

  7. IOS使用pods初次加载出现Pods-resources.sh: Permission denied错误的解决方案

    IOS使用pods初次加载出现Pods-resources.sh: Permission denied错误的解决方案 参考文章: (1)IOS使用pods初次加载出现Pods-resources.sh ...

  8. 编辑器如何加载多张图片

    只有M1(完整版).M3(拼图)支持加载多张图片 加载多张图片使用xiuxiu.loadPhoto(images,base64,id); 若M1加载多张图片,多加一个固定参数,则使用xiuxiu.lo ...

  9. ios开发多线程篇--异步加载网络图片GCD

    一.异步加载网络图片 1.ATS (1)简介 从iOS9.0开始,如果按照以前的方式写代码,在访问网络的时候 ,会报以下警告信息: App Transport Security has blocked ...

最新文章

  1. LeetCode Nim Game
  2. w3cschool教程之jQuery UI 教程概述
  3. 经典英语口语,不得不看(推荐)
  4. 求1-100之间的奇数和、偶数和
  5. java 二叉排序_java实现二叉排序树
  6. h5优秀控件_H5匠人手册:霸屏H5实战解密
  7. 自学python后自己接单-自学Python 后端一年半,如何写简历包装自己得到面试机会?...
  8. 即时通讯源码,IM源码-哇谷即时通讯源码,哇谷团队源码开发
  9. apple 关闭双重认证_如何在Apple Mail中关闭联系人和事件建议
  10. Structure-Grounded Pretraining for Text-to-SQL 论文解读
  11. win10设置Ctrl+Shift切换输入法
  12. 怒怼外媒,为中国正名,这个《流浪地球》捧红的犹太小哥太励志了
  13. vue项目结合iview4UI组件实现树状结构及复杂动态表头列表 Tree-Table 及复杂header 省市区树状表格联动 数据优化后台一次性返回一万条数据页面卡死问题
  14. 从童年回忆到“人人喊打“,好丽友做错了什么?
  15. 【MyBatis动态SQL批量修改数据出现报错问题】
  16. 宜宾市放心舒心消费平台-工商GIS一张图
  17. 一本书的推荐序——写在《思考的乐趣》即将上市之际
  18. Novell云计算大会在京开幕
  19. windows server2012安全配置—停用Guest帐号的方法
  20. 金融时报:去赚8亿非网民的钱

热门文章

  1. python画简单花-Python竟能画这么漂亮的花,帅呆了(代码分享)
  2. python第一次使用教程-Python考试_第一次
  3. python 编程入门-实验一 Python程序设计入门
  4. python动态图-Python图像处理之gif动态图的解析与合成操作详解
  5. python官网打不开-python为什么打不开
  6. 电脑安装python失败-解决“Windows 7 Python3.6 安装失败”问题
  7. python3.8.5 应用程序无法启动-macos python3.8.5 打开摄像头问题
  8. 基于python的界面自动化测试-基于python的接口自动化测试+ddt数据驱动
  9. python爬虫可以干什么-python爬虫能够干什么
  10. python怎么安装包-怎么安装python包