码迷,mamicode.com
首页 > 移动开发 > 详细

iOS----线程之间的通信

时间:2017-06-15 21:39:36      阅读:258      评论:0      收藏:0      [点我收藏+]

标签:www   显示图片   url   obj   htm   color   UI   void   until   

当线程的数量大于一个的时候,线程之间可能会产生通信,既一个线程产生的结果要被另一个线程用到。

比如常用的图片的加载就是这个样子。图片的加载是在子线程进行的,当图片加载完毕,就会回到主线程中刷新UI,展示图片。

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIImageView *iconView;

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
}

-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent *)event
{
    [self performSelectorInBackground:@selector(download) withObject:nil];
}
-(void)download
{
    //1.根据URL下载图片
    //从网络中下载图片
    NSURL *urlStr = [NSURL URLWithString:@"asdf"];
     //把图片转换为二进制的数据
    NSData *data = [NSData dataWithContentsOfURL:urlStr];
    //把数据转换成图片
    UIImage *image = [UIImage imageWithData:data];
    //2.回到主线程中设置图片

    [self performSelectorOnMainThread:@selector(settingImage:) withObject:image waitUntilDone:NO];

    //第二种方式

      //  [self.imageView performSelector:@selector(setImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:NO];      

  //第三种方式 :图片调用set方法,很好!!!

    // [self.iconView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:NO];
} 


//设置显示图片 -(void)settingImage:(UIImage *)image { self.iconView.image=image; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; }
@end

 

本文参考文顶顶的博客:

http://www.cnblogs.com/wendingding/p/3805884.html

 

iOS----线程之间的通信

标签:www   显示图片   url   obj   htm   color   UI   void   until   

原文地址:http://www.cnblogs.com/huadeng/p/7019989.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!