美文网首页iOS面试题
iOS面试题:对runtime的理解

iOS面试题:对runtime的理解

作者: iOS心安 | 来源:发表于2020-12-07 16:28 被阅读0次

    概念

    Objective-C是基于C语言加入面向对象特性和消息转发机制的动态语言,这就是说它不仅需要一个编译器,还需要Runtime系统动态的创建类和对象,进行消息发送和转发。

    我们写的代码在程序运行过程中都会被转化成runtime的C代码执行,例如[target doSomething];会被转化成objc_msgSend(target, @selector(doSomething));

    OC中一切都被设计成了对象,我们都知道一个类被初始化成一个实例,这个实例是一个对象。实际上一个类本质上也是一个对象,在runtime中用结构体表示。

    runtime是OC的底层,它就是一套纯C语言的API。那说到这,OC可以运行代码runtime肯定能运行,runtime可以运行的程序在OC下未必能够运行。

    为什么要熟悉掌握Runtime机制?

    Runtime 在实际开发中,会经常用到吗?这个答案是肯定的。但是Runtime用的好不好在于理解程度,理解的好代码质量高效实用;用的不好,容易自己造坑。在实际开发中,我并不是推荐大家熟悉灵活的运用底层的东西,而是熟悉知道底层的运行机制。要不已经封装好看又好用的API干啥使。

    Runtime 具体都干啥使用?

    比如:动态添加属性、动态添加方法、方法交换、字典模型转换

    参考文章: https://www.jianshu.com/p/6fd68ac84701

    相关文章

      网友评论

        本文标题:iOS面试题:对runtime的理解

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