- 博客(4)
- 资源 (2)
- 收藏
- 关注
原创 函数的调用流程(针对8086CPU)
1.push参数入栈(64位cpu 老子通用寄存器多,任意使用。寄存器不够使用的前提下再说入栈)2.call指令调用(同时将下一条指令的地址入栈)3.保护bp寄存器,将sp的值赋给bp4.提升sp指针(扩容空间,为局部变量腾出空间。使用方法是sp减去一个值)5.保护寄存器(如果需要的话,将ax,bx,cx寄存器中的值入栈进行保护)6.开始业务逻辑7.恢复寄存器(将ax,bx,cx入栈的值一一对应还...
2018-03-28 09:23:03 861
原创 子类中的self和super
先上一段代码在上述代码中,Dog是继承自NSObject。但是在Dog的初始化方法当中打印super class出现的竟然是Dog因为OC是运行时机制,在运行时,self class相当于调用了runtime中给某一个对象发消息的C函数。给对象发消息有四种方式1.objc_msgSend2.objc_msgSend_stret3.objc_msgSendSuper4.objc_msgSendSup...
2018-03-17 17:22:28 406
转载 KVC底层实现
原文 点击打开链接KVC运用了一个isa-swizzling技术. isa-swizzling就是类型混合指针机制, 将2个对象的isa指针互相调换, 就是俗称的黑魔法.KVC主要通过isa-swizzling, 来实现其内部查找定位的. 默认的实现方法�由NSOject提供isa指针, 如其名称所指,(就是is a kind of的意思), 指向分发表对象的类. 该分发表实际上包含了指向实现类中...
2018-03-17 17:16:59 409
原创 isa指针
在程序员眼中,万物皆对象。所以说身为一个程序员没对象?开玩笑!!!!在iOS开发中我们经常会碰到各种各样的调试方案,然后在调试的过程当中会发现每个对象都会有一个isa指针很显然,这是我自己创建的一个RootViewController的类。isa指针指的是类的本身。认识什么是isa指针,我们得先明确一点: 在Objective-C中,任何类的定义都是对象。类和类的实例(对象)没有任何本质上的区别。...
2018-03-17 17:15:12 771
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人