美文网首页
ios RunLoop笔记

ios RunLoop笔记

作者: ios小小菜鸟 | 来源:发表于2017-07-06 16:32 被阅读0次
    1. Timer计时会被scrolView的滑动影响的问题可以通过将timer添加到NSRunLoopCommonModes来解决
      NSTimer *timer = [NSTimer timerWithTimerInterval:1.0] target:self selector:@selector(timerTick:) userInfo:nil repeats:YES];
      [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommomModes];

    2. 主线程的run loop是默认启动的,其他线程默认不启动

    3. NSRunloop 不是线程安全的,CFRunLoopRef是线程安全的
      我们不能再一个线程中去操作另外一个线程的run loop对象,那很可能会造成意想不到的后果。不过幸运的是CoreFundation中的不透明类CFRunLoopRef是线程安全的,而且两种类型的run loop完全可以混合使用。Cocoa中的NSRunLoop类可以通过实例方法:
      -(CFRunLoopRef)getCFRunLoop;

    4.当在其他线程上面执行selector时,目标线程须有一个活动的run loop。对于你创建的线程,这意味着线程在你显式的启动run loop之前是不会执行selector方法的,而是一直处于休眠状态。

    • (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)argwaitUntilDone:(BOOL)wait modes:(NSArray *)array;

    相关文章

      网友评论

          本文标题:ios RunLoop笔记

          本文链接:https://www.haomeiwen.com/subject/vlbhhxtx.html