文档章节

iOS 线程间的通信

最牛逼的代码搬运工
 最牛逼的代码搬运工
发布于 2016/11/14 10:54
字数 319
阅读 948
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

iOS开发--线程间的通信主要分为两大类:

1.线程之间进行传值。

2.一个线程完成之后,转到另一个线程中继续执行。

直接上代码:

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
//    [self test1];
//    [self test2];
    [self setUpUI];
    [self correspond];
}

/******线程间的通信*******/
/******在一个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信。*******/
/******线程间的通信主要体现在下面两个方面。*******/
/******1. 一个线程传递数据给另一个线程。*******/
/******2. 在一个线程中执行完特定任务后,转到另一个线程继续执行任务。*******/

-(void)setUpUI{
    UIImageView *iconView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 100, kScreenWidth, 100)];
    iconView.backgroundColor = [UIColor clearColor];
    [self.view addSubview:iconView];
    self.iconView = iconView;
}

/******运用NSThread来展现*******/
-(void)correspond
{
    /******在自线程中调用download方法下载图片*******/
    [self performSelectorInBackground:@selector(download) withObject:nil];
}

-(void)download{
    NSURL *url = [NSURL URLWithString:@"http://www.yoka.com/dna/pics/ba15ad3a/d3571b5e5e9ba95ea11.jpg"];
    NSData *data = [NSData dataWithContentsOfURL:url];
    UIImage *icon = [UIImage imageWithData:data];
    
    /******NSThread版本*******/
    /******一个线程传递数据给另一个线程*******/
//    [self.iconView performSelectorOnMainThread:@selector(setImage:) withObject:icon waitUntilDone:NO];
    
    /******在一个线程中执行完特定任务后,转到另一个线程继续执行任务*******/
//    [self performSelectorOnMainThread:@selector(settingImage:) withObject:icon waitUntilDone:NO];
    
    /******dispatch版本*******/
    dispatch_async(dispatch_get_main_queue(), ^{
        [self settingImage:icon];
    });
}

-(void)settingImage:(UIImage *)image
{
    [self.iconView setImage:image];
}

 

© 著作权归作者所有

最牛逼的代码搬运工
粉丝 5
博文 42
码字总数 23329
作品 0
六安
程序员
私信 提问
加载中

评论(0)

iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码

iOS精选源码 iOS高仿微信完整项目源码(http://www.code4app.com/thread-14695-1-1.html) Khala: Swift 编写的iOS/macOS 路由框架(http://www.code4app.com/thread-31586-1-1.html) 微信左滑删......

Android爱开源
2019/01/03
84
0
iOS个人中心渐变动画、微信对话框、标签选择器、自定义导航栏、短信验证输入框等源码

iOS精选源码 简单的个人中心页面-自定义导航栏并予以渐变动画(http://www.code4app.com/thread-10860-1-1.html) 程序员取悦女票的正确姿势---Tip1(iOS美容篇)(http://www.code4app.com/th...

Android爱开源
2019/01/16
48
0
如何以编程方式在iPhone上发送短信?

是否有人知道有可能以及如何通过官方的SDK / Cocoa Touch通过以编程方式发送SMS ? #1楼 用这个: #2楼 #3楼 XPC是MacOS中进程间通信的系统之一。 此系统层已开发出来,用于基于使用libSyst...

javail
01/13
17
0
iOS (APP)进程间8中常用通信方式总结

1 URL Scheme 2 Keychain 3 UIPasteboard 4 UIDocumentInteractionController 5 local socket 6 AirDrop 7 UIActivityViewController 8 App Groups iOS系统是相对封闭的系统,App各自在各自的......

osc_oocvkx3x
2018/04/02
3
0
Objective-C runtime 拾遗 (四)—— 不常用的进程/线程通信方法

起 前段时间在写Promise时,调研了iOS有哪些通信的方法。,,是常见的方法,除此之外还有一些方法,在此记录共享一下。 NSPipe 官方这样解释: objects provide an object-oriented interface ...

canopus4u
2019/09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Lync Server 试用版激活

问题描述: Lync Server2013安装的试用版,180天过期之后Lync Server 服务停止运行 ……………………………………………………………………………………………………………………….. 原因分...

osc_tylqml9v
23分钟前
28
0
nginx、fastCGI、php-fpm关系梳理

前言:   Linux下搭建nginx+php+memached(LPMN)的时候,nginx.conf中配需要配置fastCGI,php需要安装 php-fpm扩展并启动php-fpm守护进程,nginx才可以解析php脚本。那么,这样配置的背后原...

osc_qjkncsnp
23分钟前
11
0
Office web apps 服务器运行一段时间之后CPU就是达到100%

office web apps服务器部署两台,采用服务器场的方式实现高可用,主要为Lync server 2013 提供共享PPT; exchange 2013、SharePoint 2013提供在线预览word、PPT、excel。 原因分析(Cause) ...

osc_zwv9uj8l
24分钟前
12
0
Artifactory中Maven仓库配置优化——提升Virtual仓库下载速度

问题背景 随着研发团队不断扩大Artifactory中Maven仓库也在逐步增多,包括 local、remote、virtual 仓库,其中往往会涵盖RELEASE和SNAPSHOT包类型仓库,为了对使用客户透明简化用户配置,管理...

JFrog杰蛙
24分钟前
13
0
Linux 开机自检(未整理全)

1、开机自检BIOS 检查硬件有没有问题 没问题就根据启动次序 交加硬盘 2、MBR引导 交给硬盘哪里? 硬盘0 柱面0 磁道1 扇区的前446byte 1扇区一共是512byte 剩下64byte(分区表 4个)+2(分区结...

osc_t1zhs6ty
25分钟前
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部