iOS Runloop(一)

这篇文章主要是自己学习,一个链接和自己的补充

http://www.cocoachina.com/ios/20160307/15590.html

  • runloop停止时,开始另一个runLoop的时候,停止的ruanloop我认为没有释放,一直在等待着触发。

  • 异步测试:

- (BOOL)runUntilBlock:(BOOL(^)())block timeout:(NSTimeInterval)timeout{
      __block Boolean fulfilled = NO;
      void (^beforeWaiting) (CFRunLoopObserverRef observer, CFRunLoopActivity activity) =
 ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) {
      fulfilled = block();
      if (fulfilled) {
           CFRunLoopStop(CFRunLoopGetCurrent());
      }
 };

 CFRunLoopObserverRef observer = CFRunLoopObserverCreateWithHandler(NULL, kCFRunLoopBeforeWaiting, true, 0, beforeWaiting);
 CFRunLoopAddObserver(CFRunLoopGetCurrent(), observer, kCFRunLoopDefaultMode);

 // Run!
 CFRunLoopRunInMode(kCFRunLoopDefaultMode, timeout, false);

 CFRunLoopRemoveObserver(CFRunLoopGetCurrent(), observer, kCFRunLoopDefaultMode);
 CFRelease(observer);

 return fulfilled;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.基本作用(作用重大) a 保持程序的持续运行(ios程序为什么能一直活着不会死)b 处理app中的各种事件(比...
    BEYOND黄阅读 268评论 0 3
  • RunLoop 的概念一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程...
    南方_H阅读 185评论 0 1
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 15,146评论 4 61
  • 每一次喝甘露,不由自主的喜悦,然后是感动。一部分的记忆被唤醒,一部分的未来在开启,回到当下那份觉知,是熟悉和恩典。...
    心源宝贝阅读 312评论 0 0
  • 今日早上出门的时候,老婆,突然叫住我,我在门停留了半天以为她会叫我中午下班的时候买什么东西回来呢?我有些不...
    左手温度阅读 238评论 0 2

友情链接更多精彩内容