多线程 线程之间的通信
// DYFViewController.m
// 623-06-线程间的通信
//
// Created by dyf on 14-6-23.
// Copyright (c) 2014年 ___FULLUSERNAME___. All rights reserved.
//
#import "DYFViewController.h"
@interface
DYFViewController ()
@property
(weak,
nonatomic
)
IBOutlet
UIImageView *imaV;
@end
@implementation
DYFViewController
- (
void
)viewDidLoad
{
[
super
viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (
void
)touchesBegan:(
NSSet
*)touches withEvent:(UIEvent *)event
{
// 1.下载图片
[
self
performSelector:
@selector
(download) withObject:
nil
];
// 显示、刷新界面,只能在主界面
// 2.显示图片
}
/**
* 下载图片:子线程
*/
- (
void
)download
{
// 1.根据URL下载图片
NSLog
(@
"---------begin"
);
NSData
*data = [
NSData
dataWithContentsOfURL:url];
// 耗时
NSLog
(@
"-----------end"
);
UIImage *image = [UIImage imageWithData:data];
// 2.回到主线程显示图片
// [self.imaV performSelector:@selector(setImage:) onThread:[NSThread mainThread] withObject:image waitUntilDone:NO modes:nil];
//[self performSelectorOnMainThread:@selector(settingImage:) withObject:nil waitUntilDone:NO];
[
self
.imaV performSelectorOnMainThread:
@selector
(setImage:) withObject:image waitUntilDone:
NO
];
}
/**
* 显示图片:主线程
*
* @param image image
*/
- (
void
)settingImage:(UIImage *)image
{
self
.imaV.image = image;
}
@end
小结:主线程与子线程之间的通信