IOS网络笔记--多线程编程1

申明:此为本人学习笔记,若有纰漏错误之处的可留言共同探讨


/*

多线程编程思路

1. 开启分线程,在分线程加载数据

2 加载完之后,回到主线程再更新UI


这里要强调一点,就是不要直接在分线程更新UI。不仅是IOS开发,其他的语言也是强调不要在主线程以外的线程更新UI。

*/

#import "ViewController.h"


@interface ViewController ()

{

    UIImageView *view;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    

    // 用来显示网络加载过来的图片

   view= [[UIImageView alloc]initWithFrame:self.view.frame];

    [self.view addSubview:view];

    

    // 开启分线程

    [NSThread detachNewThreadSelector:@selector(loadPic) toTarget:self withObject:nil];

}



#pragma mark - 线程方法

- (void)loadPic

{

    NSLog(@"loadThreadMethod");

    // 加载网络图片

    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://imgsrc.baidu.com/forum/pic/item/e42b1dd8bc3eb135d193e747a61ea8d3fc1f4493.jpg"]];

    

    // 回到主线程

    [self performSelectorOnMainThread:@selector(gotoMain:) withObject:data waitUntilDone:YES];


}


-(void)gotoMain:(NSData *)data

{

    // 刷新UI数据

    view.image = [UIImage imageWithData:data];

    

}


@end


附上完整demo:http://download.csdn.net/detail/csdn_hhg/9204147
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值