Objective-C-NSObject类的线程方法
博客专区 > BKF_ 的博客 > 博客详情
Objective-C-NSObject类的线程方法
BKF_ 发表于2年前
Objective-C-NSObject类的线程方法
  • 发表于 2年前
  • 阅读 33
  • 收藏 1
  • 点赞 1
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: oc中,NSObject 对象的 线程
  1. demo,在iOS中NSObject 对象的 线程

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    //子线程
    NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(createThread:) object:@"first"];
    [thread start];
    //子线程
    [NSThread detachNewThreadSelector:@selector(createThread:) toTarget:self withObject:@"second"];
    //子线程,后台
    [self performSelectorInBackground:@selector(createThread:) withObject:@"thrid"];
    //主线程
    [self performSelector:@selector(createThread:) withObject:@"forth"];
    //主线程,因为onThread:[NSThread currentThread]
    [self performSelector:@selector(createThread:) onThread:[NSThread currentThread] withObject:@"fifth" waitUntilDone:NO];//改变yes,no
    NSLog(@"---fifth:Done---");
}

- (void) createThread:(NSString *) who
{
    NSLog(@"%@:%@",who, [NSThread currentThread]);
}

output:

2.线程间通信

子线程加载数据,福线程更新UI

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
   [ self performSelectorInBackground:@selector(downloadImage:) withObject:@"http://www.sinaimg.cn/qc/photo_auto/photo/34/78/6713478/6713478_src.jpg" ]; 
}

- (void) downloadImage:(NSString *) urlStr
{
    NSLog(@"downLoading, thread is:%@", [NSThread currentThread]);
    NSURL *url = [NSURL URLWithString:urlStr];
    NSData *data = [NSData dataWithContentsOfURL:url];
    UIImage *image = [UIImage imageWithData:data];
    //perform.... 执行完 前面的操作后(指令)才会执行 updateUi
    [self performSelectorOnMainThread:@selector(updateUI:) withObject:image waitUntilDone:YES];
//    [self updateUI:image];
}

- (void) updateUI:(UIImage *)image
{
    NSLog(@"updateUI:%@", [NSThread currentThread]);
    self.testImgView.image = image;
}


标签: 多线程
共有 人打赏支持
粉丝 2
博文 21
码字总数 4291
×
BKF_
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: