• 线程间的通信


    #import "HMViewController.h"
    
    @interface HMViewController ()
    @property (weak, nonatomic) IBOutlet UIImageView *imageView;
    @end
    
    @implementation HMViewController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        [self performSelectorInBackground:@selector(download) withObject:nil];
    }
    
    /**
     *  下载图片
     */
    - (void)download
    {
        NSLog(@"download---%@", [NSThread currentThread]);
        // 1.图片地址
        NSString *urlStr = @"http://pic.nipic.com/2007-11-09/2007119122519868_2.jpg";
        NSURL *url = [NSURL URLWithString:urlStr];
        
        // 2.根据地址下载图片的二进制数据(这句代码最耗时)
        NSLog(@"---begin");
        NSData *data = [NSData dataWithContentsOfURL:url];
        NSLog(@"---end");
        
        // 3.设置图片
        UIImage *image = [UIImage imageWithData:data];
        
        // 4.回到主线程,刷新UI界面(为了线程安全)
        [self performSelectorOnMainThread:@selector(downloadFinished:) withObject:image waitUntilDone:NO];
    //    [self performSelector:@selector(downloadFinished:) onThread:[NSThread mainThread] withObject:image waitUntilDone:YES];
    //    [self.imageView performSelectorOnMainThread:@selector(setImage:) withObject:image waitUntilDone:YES];
        
        NSLog(@"-----done----");
    }
    
    - (void)downloadFinished:(UIImage *)image
    {
        self.imageView.image = image;
        
        NSLog(@"downloadFinished---%@", [NSThread currentThread]);
    }
    
    @end
  • 相关阅读:
    (16)C#继承
    (3)新概念英语一(11-20)lessons
    (15)C#集合
    (14)编码
    (2)新概念英语一(1-10)lessons
    (13)C#数组和元组
    Uva 11729 Commando War
    Uva 11292 Dragon of Loowater
    谈谈单元最短路
    [USACO 3.3.1]骑马修栅栏t
  • 原文地址:https://www.cnblogs.com/ZMiOS/p/4924206.html
Copyright © 2020-2023  润新知