IOS第一天多线程-04GCD通信
2024-10-20 04:01:12
****
#define HMGlobalQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
#define HMMainQueue dispatch_get_main_queue() #import "HMViewController.h" @interface HMViewController ()
@property (weak, nonatomic) IBOutlet UIButton *button; @property (weak, nonatomic) IBOutlet UIImageView *newImageView;
@end @implementation HMViewController - (void)viewDidLoad
{
[super viewDidLoad]; [self newImageView]; // NSObject *obj = [NSObject new];
//
// [[NSObject alloc] init]; // Do any additional setup after loading the view, typically from a nib.
} - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
dispatch_async(HMGlobalQueue, ^{
NSLog(@"donwload---%@", [NSThread currentThread]);
// 1.子线程下载图片
NSURL *url = [NSURL URLWithString:@"http://d.hiphotos.baidu.com/image/pic/item/37d3d539b6003af3290eaf5d362ac65c1038b652.jpg"];
NSData *data = [NSData dataWithContentsOfURL:url];
UIImage *image = [UIImage imageWithData:data]; // 2.回到主线程设置图片
dispatch_async(HMMainQueue, ^{
NSLog(@"setting---%@ %@", [NSThread currentThread], image);
[self.button setImage:image forState:UIControlStateNormal];
});
});
} @end
最新文章
- xcode配置绝对路径与相对路径
- C#根据日期范围过滤IQueryable<;T>;集合
- 在view中常见的四种方法的使用场合
- Handle类的用法
- Activity的Launch mode详解 singleTask正解
- Fortify对移动应用安全的支持
- Tensorflow tflearn 编写RCNN
- WebAPI 用ExceptionFilterAttribute实现错误(异常)日志的记录(log4net做写库操作)
- 虚拟机装的XP,无法上网,因为没有安装网卡驱动,怎么解决
- JS原生代码实现导航高亮
- 安装解压版本的MySQL,安装过程中的常见命令,检查windows系统错误日志的方式来检查MySQL启动错误,关于Fatal error: Can&#39;t open and lock privilege
- (四十七)Quartz2D引擎初步
- BZOJ 4804
- 06_ for 练习 _ 年利率
- [Flutter] Windows/MacOS Flutter 环境走一遍
- WebForm应用log4net记录错误日志——使用线程列队写入
- C#写入Oracle 中文乱码问题
- css引入的两种方法link和@import的区别和用法
- 分布式消息列队RocketMQ部署
- Qt 之 去除窗口部件被选中后的焦点虚线框