主题五《Runtime》
2020-09-19 本文已影响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)利用消息转发机制解决方法找不到的异常问题等等。