A知识点2程序员首页投稿(暂停使用,暂停投稿)

ios-控制器生命周期与线程生命周期的关系

2016-05-08  本文已影响644人  AlexPei
01.gif

#import "ViewController.h"
#import "TwoViewController.h"
@interface ViewController ()

@end

@implementation ViewController

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

  NSLog(@"开始");
  TwoViewController * vc = [TwoViewController new];
  [vc demoWithBlock:^(NSString *str) {
    NSLog(@"%@",str);
  }];
}


-(void)demoWithBlock:(void (^)(NSString *))block{

  NSLog(@"开始执行dmeo");
 //全局队列异步执行,不堵塞主线程
  dispatch_async(dispatch_get_global_queue(0, 0), ^{
   //然线程睡 4s
    [NSThread sleepForTimeInterval:4.0];
   //主队列执行block,回调block.
    dispatch_async(dispatch_get_main_queue(), ^{
     
      block(@"回去");
    });
   
   
  });
 
}

小结: 当任务被添加到队列以后就不会被销毁,即使是控制器被销毁,任务也不会被销毁或者暂停.就想 "泼出去的水,你收不回来,只能任它蒸发..."

上一篇 下一篇

猜你喜欢

热点阅读