美文网首页
主题五《Runtime》

主题五《Runtime》

作者: 东方奇迹 | 来源:发表于2020-09-19 23:18 被阅读0次
截屏2020-07-31 上午10.45.53.png 截屏2020-07-31 上午11.31.53.png 截屏2020-07-31 上午10.47.01.png 截屏2020-07-31 下午4.29.25.png 截屏2020-07-31 下午4.30.47.png 截屏2020-07-31 下午4.53.37.png 截屏2020-07-31 下午4.59.28.png 截屏2020-07-31 下午5.10.05.png 截屏2020-07-31 下午5.36.28.png 截屏2020-07-31 下午6.05.23.png 截屏2020-07-31 下午7.45.23.png 截屏2020-07-31 下午8.01.29.png 截屏2020-07-31 下午9.26.25.png 截屏2020-07-31 下午7.50.28.png 截屏2020-07-31 下午11.12.34.png 截屏2020-09-21 下午9.49.44.png 截屏2020-07-31 下午11.03.37.png 截屏2020-07-31 下午11.21.29.png 截屏2020-08-01 下午5.02.15.png 截屏2020-08-01 下午4.55.50.png 截屏2020-08-01 下午6.51.52.png 截屏2020-08-02 上午11.29.02.png 截屏2020-08-01 下午7.20.52.png 截屏2020-08-01 下午7.55.18.png 截屏2020-08-01 下午7.52.34.png 截屏2020-08-01 下午8.21.04.png

左边如果是实例对象右边应该传类对象
左边如果是类对象右边应该传元类对象

截屏2020-08-01 下午8.48.19.png 截屏2020-08-01 下午8.51.23.png 截屏2020-08-01 下午8.56.25.png

此题考查:supper的本质、栈空间(分配局部变量是从高地址往低地址分配的)、消息机制、访问成员变量的本质(找到对象的内存,然后找到对象内存里面的成员,就是跳过isa占用的8个字节找到下一个成员)。

截屏2020-09-22 下午3.00.33.png 截屏2020-09-22 下午3.32.03.png 截屏2020-08-01 下午10.19.12.png 截屏2020-08-01 下午10.31.20.png 截屏2020-08-01 下午10.38.21.png 截屏2020-08-01 下午10.38.33.png 截屏2020-08-01 下午10.38.46.png 截屏2020-08-01 下午10.39.01.png 截屏2020-08-01 下午10.39.13.png 截屏2020-09-23 下午1.31.53.png 截屏2020-08-02 上午10.54.43.png 截屏2020-08-02 上午10.55.00.png 截屏2020-08-02 上午10.56.21.png 截屏2020-09-23 下午2.23.35.png 截屏2020-09-23 下午4.39.32.png 截屏2020-09-23 下午9.23.56.png

1、oc的方法调用/oc消息机制?

(1)oc中的方法调用其实都是转成了objc_msgSend函数的调用;
(2)objc_msgSend底层有三大阶段:消息发送、动态解析、消息转发。

2、什么是runtime?

(1)oc是一门动态性很强的编程语言,允许很多操做推迟到运行时进行;
(2)oc的动态性是有runtime支撑和实现的,runtime是一套c语言的API,封装了很多动态性的函数;
(3)平时编写的oc代码底层都是转换成runtimeAPI进行调用的。

3、runtime在项目中的具体应用?

(1)利用关联对象(objc_setAssociatedObject)给分类添加属性;
(2)遍历类的所有成员变量(修改输入框占位符字体颜色、字典转模型、自动归档解档);
(3)交换方法实现(交换系统方法)(UIFont字体大小、UIButton图片的位置、viewWillAppear进行统一操作);
(4)利用消息转发机制解决方法找不到的异常问题等等。

4、常用API?

相关文章

  • 主题五《Runtime》

    左边如果是实例对象右边应该传类对象左边如果是类对象右边应该传元类对象 此题考查:supper的本质、栈空间(分配局...

  • iOS面试-Runtime简介

    本文主要介绍runtime的五点 Runtime简介 Runtime(消息机制) Runtime方法调用流程 Ru...

  • runtime底层实现原理

    一、Runtime介绍二、Runtime源码初探三、Runtime消息传递四、Runtime消息转发五、Runti...

  • iOS runtime方法交换,动态添加属性

    runtime在项目中越来越常见,学会runtime还是需要的,废话不多说,直接进入主题。 1.使用runtime...

  • runtime(五)

    本文Demo代码见gitHubDemo 消息转发应用 接下来我们看看Runtime的具体的使用 类 成员变量和属性...

  • iOS - Runtime相关

    一.什么是 runtime ? 二.runtime的头文件 三.消息发送步骤 四.常用方法 五.应用

  • Runtime(五)KVO

    KVO提供一种机制,指定一个被观察对象(例如A类),当对象某个属性(例如A中的字符串name)发生更改时,对象会获...

  • Runtime(五) 实战

    实战一: 数据转模型 目标: 数据转模型考验知识点: 获取属性列表, 关联属性, 字典转模型 1, 获取类的属性列...

  • android动态主题切换(RRO 技术)

    android上的主题切换,Android从M开始加入了动态资源overlay机制 runtime resourc...

  • Runtime系列 5 -- 协议与分类

    本篇为 Runtime 系列文章的第五篇, 其他文章的传送门见下方: Runtime系列 1 -- 类与对象:传送...

网友评论

      本文标题:主题五《Runtime》

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