简单说就是定义了一个汇编的宏,名字叫ENTRY,$0,就是这个宏的缺省参数。找到这句 ENTRY _objc_msgSend,在宏生成代码时$0就是_objc_msgSend,这会生成一个对应的函数跳转标签_objc_msgSend:。
解读objc_msgSend引入 众所周知,Objective-C动态性的根源在方法的调用是通过message来实现的,一次发生message的过程就是一次方法的调用过程。发送message只需要指定对...
简单说就是定义了一个汇编的宏,名字叫ENTRY,$0,就是这个宏的缺省参数。找到这句 ENTRY _objc_msgSend,在宏生成代码时$0就是_objc_msgSend,这会生成一个对应的函数跳转标签_objc_msgSend:。
解读objc_msgSend引入 众所周知,Objective-C动态性的根源在方法的调用是通过message来实现的,一次发生message的过程就是一次方法的调用过程。发送message只需要指定对...
咋一看,只能了解其定义了一些数据存储的空间,里面存储的应该是指针,而且这些指针3bit对齐,似乎跟OC的objc_object指针很类似...
————————————
.align 3 // 表示的应该是 2^3 = 8 字节对齐吧?
👀
for也可以啊
[iOS ]iOS 开发遍历数组防止crash及提高效率前言 开发过程中不免需要对数组进行遍历,一般我们都直接用for循环或者for in遍历数组,但是这样的话就容易crash,原因是遍历数组的时候可能一不留神就对数组进行更改。 ...
第一面,视频面试 两个人分别面试,问的基础的比较多,因为还涉及到音视频的开发,所以音视频方面的知识点也问了一些常见的属性修饰符有哪些,使用copy应该注意些什么深拷贝和浅拷贝...
关于 GCD 的 block 捕获 self 是否造成循环引用的问题,网上是争论不休,在 iOS 的面试中更是频繁出现。我们从 YYKit 里面的一个Issue 出发,来探索...
哥们你的想法比较独特,我怎么从来没有考虑过那它拿来做内存存储?
完了!用完NSCache怀疑人生了....在最近的一次项目模块化实践中,我重构了Hybrid模块的API分发机制。重构中使用了NSCache,结果bug改到怀疑人生。 之前的hybrid模块,API的实现与js-br...
@我是自来也大人 嗯,这个crash复现低,就算改了,也难以通过测试来验证其已被修复,很多时候苹果官方demo确实是最好的资料。
NSURLProtocol子类使用的坑(去年写的文档) 之前使用NSURLProtocol子类做了一个H5资源的缓存,本来以为是个简单的事情,但是后来在实际做的过程中却遇到了不少的坑和槽点,特此...
从OC的范畴看,确实是>=16字节,但是OC对象一般都是malloc出来的,malloc出来的会有其他信息存储,以供free等使用,会多分配些额外空间,我记得一般是8个byte。
OC对象占用内存原理 (一文彻底搞懂)要想真真切切看到一个OC对象占用多少内存, 实践是必不可少的. 初始OC对象占用内存 创建一个 Command Line Tool 工程 , 打开 main.m 在 main...
@我只不过是出来写写代码 呃,小公司搬砖呢,有啥事儿么?
JOBridge之三C函数OC化和语法增加以及优化(可用代替JSPatch)简述 前两篇博客已经将JOBridge 基本实现原理和实现方案以及大部分代码都写好了 ,它向JS开放了绝大部分的OC方法,JS可以很容易替换方法,新增方法,构建回调方法,让J...
本博客为原创为 吸血鬼de晚餐,转载随意,但请标明出处。博客原文 JOBridge之四使用方法(可用代替JSPatch) CSDN真恶心🤢,把我之前的一些博客爬取下来,然后挂...
呃,又要出续集了…真不是故意的-_-!!,之前写的时候,只是为了实现功能,而这次是为了优化。初版花了两天完成,优化却前前后后花了两周。 目前我优化出了两个版本,一个正常版本,...
简述 前两篇博客已经将JOBridge 基本实现原理和实现方案以及大部分代码都写好了 ,它向JS开放了绝大部分的OC方法,JS可以很容易替换方法,新增方法,构建回调方法,让J...
简述 在上篇文章:JOBridge之一任意方法的Swizzle(链接地址https://www.jianshu.com/p/905e06eeda7b),介绍了Swizzle任...
前面几篇都是比较理论的,有兴趣可看看后面的几篇应用性的
解读objc_msgSend引入 众所周知,Objective-C动态性的根源在方法的调用是通过message来实现的,一次发生message的过程就是一次方法的调用过程。发送message只需要指定对...