iOS开发多线程篇---线程间的通信

线程间通信的表现:

1个线程传递数据给另1个线程

在1个线程中执行完特定任务后,转到另1个线程继续执行任务

下面是一个下载图片的例子:

@interface BTThreadViewController ()
{
    UIImageView *imagev;
}
@end

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    imagev = [[UIImageView alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
    [self.view addSubview:imagev];
    
    //子线程里面调用downImage方法下载图片
    [self performSelectorInBackground:@selector(downImage) withObject:nil];
}

-(void)downImage
{
    //从网络中下载图片
    NSURL *url = [NSURL URLWithString:@"http://i8.topit.me/8/c1/31/1142319854bdc31c18o.jpg"];
    //将图片转换为二进制数据
    NSData *imgData = [NSData dataWithContentsOfURL:url];
    //数据转换成图片
    UIImage *img = [UIImage imageWithData:imgData];
    
    //回到主线程设置图片
    [self performSelectorOnMainThread:@selector(senderImage:) withObject:img waitUntilDone:NO];
}

-(void)senderImage:(UIImage *)image
{
    imagev.image = image;
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。