首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
iOS大师修炼手册
每天写点代码
创建于2021-06-03
订阅专栏
Talk is cheap,I'll show you my code!
等 29 人订阅
共20篇文章
创建于2021-06-03
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
每天写点代码
1年前
iOS
iOS底层原理20:KVO分析
这是我参与8月更文挑战的第9天,活动详情查看: 8月更文挑战 KVO简介 KVO全称为Key-Value Observing,意思就是键值观察;KVO是一种机制,它允许允许其他对象的指定属性发生变化时
831
2
评论
每天写点代码
1年前
iOS
iOS底层原理19:KVC分析
这是我参与8月更文挑战的第8天,活动详情查看: 8月更文挑战 Method Swizzling 应用 Method Swizzling 简介 Method Swizzling被称为苹果的黑魔法,其本质
362
3
评论
每天写点代码
1年前
iOS
Objective-C
iOS底层原理18:OC底层面试题分享
这是我参与8月更文挑战的第7天,活动详情查看: 8月更文挑战 load和initialize方法的调用原则和顺序? load方法 load方法是在应用程序加载过程中,在main函数之前,也就是dyld
579
4
2
每天写点代码
1年前
iOS
iOS底层原理17:类扩展和关联对象
这是我参与8月更文挑战的第6天,活动详情查看: 8月更文挑战 在之前的文章中我们已经分析过类的加载原理,今天我们来研究一下类扩展和关联对象 类扩展 扩展和分类的区别 1、 分类(类别) 专门用来给类添
499
2
评论
每天写点代码
1年前
iOS
iOS底层原理16:类的加载原理(下)
这是我参与8月更文挑战的第5天,活动详情查看: 8月更文挑战 我们在之前的文章中讲了类的加载原理,但是到目前为止,类的rwe什么时候才会赋值,我们依然不得而知,但是我们能推测出应该是在methodiz
286
3
评论
每天写点代码
1年前
iOS
iOS底层原理15:类的加载原理(中)| 8月更文挑战
这是我参与8月更文挑战的第4天,活动详情查看: 8月更文挑战 readClass(类有了名字和地址) 在read_image的流程中我们知道经过readClass之后,类有了名字和地址;那么其流程究竟
157
2
评论
每天写点代码
1年前
iOS
iOS底层原理14:类的加载原理(上)| 8月更文挑战
这是我参与8月更文挑战的第3天,活动详情查看: 8月更文挑战 在之前应用程序加载的文章中我们梳理了dyld的加载流程,接下来我们以_objc_init为入口,详细分析代码逻辑; objc_init分析
429
4
评论
每天写点代码
1年前
iOS
iOS底层原理13:应用程序加载(下)| 8月更文挑战
这是我参与8月更文挑战的第2天,活动详情查看: 8月更文挑战 dyld链接objc的函数执行 在上一篇文章中我们了解到map_images和load_images起到了dyld和objc沟通桥梁的作用
164
2
评论
每天写点代码
1年前
iOS
iOS底层原理12:应用程序加载(上)| 8月更文挑战
这是我参与更文挑战的第1天,活动详情查看: 更文挑战 应用程序的加载 前边文章中我们介绍了很多底层的源码,那么在应用程序加载的过程中,这些代码是怎么写到内存中的呢?我们工程中的动态库和静态库是如何加载
732
3
评论
每天写点代码
1年前
iOS
前端
iOS底层原理11:消息转发
消息转发引入 instrumentObjcMessageSends方法的使用 在上一篇文章中我们介绍了通过方法决议的方式来处理未实现的方法崩溃问题;但显然这种一刀切的方式并不可取;那么除此之外,我们还
1074
4
评论
每天写点代码
1年前
iOS
iOS底层原理10:消息动态决议
unrecognized selector的底层实现原理 创建类Person和Teacher; 类Person: 类Teacher: 接下来,在main函数中调用如下代码: 开发过程中,我们经常会碰到
430
4
2
每天写点代码
1年前
iOS
iOS底层原理09:消息慢速查找
objc_msgSend的真机汇编流程 缓存未命中 新建一个工程,在工程中新建类Person: 在main函数中,断点如下: 进入汇编窗口: Debug->Debug Workflow->Always
364
3
3
每天写点代码
1年前
iOS
iOS底层原理08: objc_msgSend分析下
这是我参与更文挑战的第10天,活动详情查看: 更文挑战 我们以arm64架构为例来分析流程: objc_msgSend流程 ENTRY _objc_msgSend cmp p0, #0寄存器p0是
267
3
3
每天写点代码
1年前
iOS
iOS底层原理07: objc_msgSend分析上
这是我参与更文挑战的第9天,活动详情查看: 更文挑战 cache拓展补充 内存平移 我们在上一篇文章中查找sel和imp是使用了下边这样的方式来查找数据 在$12中无法找到数据时,我们采用了指针平移的
498
5
1
每天写点代码
1年前
iOS
iOS底层原理06:类的cache_t分析
这是我参与更文挑战的第8天,活动详情查看: 更文挑战 cache的数据结构 我们知道类在底层的结构如下图所示: 在之前的章节中我们研究了bits的结构分析,今天我们来研究cache_t cache的结
309
3
1
每天写点代码
1年前
iOS
iOS底层原理05:类的原理分析(下)
这是我参与更文挑战的第7天,活动详情查看: 更文挑战 成员变量和属性 我们将上一篇文章中的Person类修改如下: 在Person中存在: 属性:name、realName和age 成员变量:nick
432
3
评论
每天写点代码
1年前
iOS
iOS底层原理04: 类的原理分析(上)
这是我参与更文挑战的第5天,活动详情查看: 更文挑战 isa分析元类 类的isa分析 我们在上一篇文章中对Person的对象做过这样的分析 接下来我们继续打印Person的内存情况 我们接下来尝试继续
484
5
评论
每天写点代码
1年前
iOS
iOS底层原理 03:OC对象原理探索(下)
这是我参与更文挑战的第4天,活动详情查看: [更文挑战] 对象的本质及拓展 什么是Clang Clang是一个C语言、C++、Objective-C语言的轻量级编译器。源代码发布于BSD协议下。Cla
876
4
1
每天写点代码
1年前
iOS
iOS底层原理 02:OC对象原理探索(中)
这是我参与更文挑战的第1天,活动详情查看: 更文挑战 LLVM优化alloc 在上一篇文章中我们按照源码分析了一下alloc的调用流程,大致如下: 现在我们在objc源码中,再做一次分析 alloc具
889
7
2
每天写点代码
2年前
iOS
iOS底层原理 01:OC对象原理探索(上)
alloc对象的指针地址和内存 在开始研究之前,我们先创建一个工程,然后新建一个类Person,然后我们看一下下边代码的结果 最终打印结果为: 我们发现结果一摸一样,由此我们可以得出以下结论:\ al
2333
13
6