美文网首页iOS学习
对RunTime的理解

对RunTime的理解

作者: 为心而狂 | 来源:发表于2017-02-20 14:31 被阅读142次

    一直都在听着身边的人说,总感觉似懂非懂的,终于借助这个机会,让自己好好沉静下来理了理思路。

    之前每次翻阅RunTime的时候,总感觉知道,但是一旦平时他人问起是,却是吐不出来,有时真的很是尴尬。为了避免更多的尴尬,所以想弄明白一些。

    RunTime是OC中底层的一套C语言的API,他的核心是消息分发。RunTime是运行时候的一些机制,怎么说呢?对于C语言,函数的调用在编译的时候决定调用哪个函数,编译完成之后,直接顺序执行,没有其他的过程。然而OC的函数调用则是转变成了消息分发,实属动态调用过程。意思就是在编译的时候不能决定调用哪个函数,只有在运行的时候才会根据函数名称找到对应的函数。

    那RunTime对于我们而言在OC中如何使用的,其实我们一直都在使用它,只是之前不是很清楚原来这就是Runtime机制。简单点说Block的运行原理就是RunTime的运行机制,还比如这样一句简单的代码[objc say];其中objc是对象,say是一个函数名称,在编译之时RunTime就会将这句简单的代码转换成objc_msgSend(objc,@selectoer,(say));源于OC早早就将RunTime纳入其中,对其进行了分装,因此我们使用起来极为的方便。

    相关文章

      网友评论

        本文标题:对RunTime的理解

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