美文网首页
runloop相关小结

runloop相关小结

作者: 最初的自己_f7c3 | 来源:发表于2019-08-08 09:50 被阅读0次

本文总结与runloop相关的知识点。从以下几个方面去分析runloop:

  • runloop是什么?有什么作用
  • runloop内有哪些事件
  • runloop与线程的关系
  • runloop的应用

runloop是什么?有什么作用

runloop是什么

答:runloop是一个对象
在Foundation框架中,runloop是一个NSRunloop对象
在CoreFoundation框架中,runloop是一个__CFRunloop结构体

runloop有什么作用

刚才说了,runloop是一个对象,这个对象提供了什么作用呢?

  1. 作用一:提供了一个函数入口,使得程序不会主动退出。
    都说runloop是一个运行循环,那么问题来了:我们如何验证?
    我们先来看文档:
    WeChatabfcacca345bdba5516fa6f4cf3ddbca.png
    翻译如下:
    **RunLoop对象处理来自窗口系统、端口对象和NSConnection对象的鼠标和键盘事件等源的输入。RunLoop对象还处理计时器事件。

您的应用程序既不创建也不显式地管理RunLoop对象。每个线程对象(包括应用程序的主线程)都有一个RunLoop对象,根据需要自动为其创建。如果需要访问当前线程的运行循环,可以使用类方法current来访问。

注意,从RunLoop的角度来看,计时器对象不是“输入”——它们是一种特殊类型,这意味着它们在触发时不会导致run循环返回。**

这里似乎没有说runloop使得程序不会主动退出。

我们换一种思路:它是从什么时候执行的入口函数呢?
答案显而易见:main函数
因为程序的入口就是main函数,既然提供了运行循环,肯定是从一开始就执行了入口函数。

WeChatbbef490a8acc459d79378a63b20b0b65.png
翻译如下:
创建应用程序对象和应用程序委托,并设置事件循环
这是UIApplicationMain函数做的事情。
如果我们不执行这个函数呢?
WeChat04bc9a127b036edf9baf89fa3d54ee4a.png
boom!!
程序一运行就结束了。这个结果也很符合正常的逻辑。
结论:我们的应用程序,通过UIApplicationMain函数,设置了运行循环,使得程序不会主动退出
  1. 作用二:

相关文章

  • runloop相关小结

    本文总结与runloop相关的知识点。从以下几个方面去分析runloop: runloop是什么?有什么作用 ru...

  • NSRunLoop

    【iOS程序启动与运转】- RunLoop个人小结 RunLoop总结:RunLoop的应用场景(三) 走进Run...

  • RunLoop

    RunLoop简单概述 RunLoop相关类 RunLoop逻辑处理 RunLoop实践 RunLoop简单概述 ...

  • iOS RunLoop(1)RunLoop简介

    iOS RunLoop(1)RunLoop简介iOS RunLoop(2)RunLoop相关类iOS RunLo...

  • iOS RunLoop(2)RunLoop相关类

    iOS RunLoop(1)RunLoop简介iOS RunLoop(2)RunLoop相关类iOS RunLo...

  • iOS RunLoop(3)RunLoop原理

    iOS RunLoop(1)RunLoop简介iOS RunLoop(2)RunLoop相关类iOS RunLo...

  • iOS RunLoop(4)RunLoop实战应用

    iOS RunLoop(1)RunLoop简介iOS RunLoop(2)RunLoop相关类iOS RunLo...

  • 深入浅出 RunLoop

    前言 文章主要分为四个部分 一、RunLoop 简介 二、RunLoop 相关接口 三、RunLoop 相关逻辑流...

  • 14-RunLoop-01

    一、RunLoop的认识 二、RunLoop对象 RunLoop源码: 三、RunLoop相关类 切换mode不会...

  • dailyLearning -- runLoop

    runLoop runLoop 对外的接口及相关类 runLoop 内部逻辑 runLoop 可以做啥 runLo...

网友评论

      本文标题:runloop相关小结

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