首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
iOS小集
潘森
创建于2021-11-02
订阅专栏
学习总结iOS知识
等 1 人订阅
共14篇文章
创建于2021-11-02
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
MLeaksFinder源码学习
为了方便理解, 跟源码有出入. 核心原理 在你认为某对象将要dealloc的地方,调用一下该对象的willDealloc, 如果2秒钟后该对象依旧存在,说明该对象可能释放不及时,存在内存泄漏 所以重要
OC - Block
可以用xcrun -sdk iphoneos clang -arch arm64 -fobjc-arc -fobjc-runtime=ios-10.0.0 -rewrite-objc main.m
Foundation02 - KVC
设置值的流程 setValue:forKey: setValue:forKeyPath: (keypath 支持 "A.B.C") setKey: _setKey:, 存在这些方法即调用方法, 否则到
runtime10 - class内存结构
内存结构 iOS 14 以前: iOS 14以后: 针对class_rw_t 做了一些优化 iOS14 以前: iOS14以后: 优化原因:详细看这里 class_ro_t和class_rw_t的关系
runtime09 - 消息发送与转发机制
消息发送与转发机制 method_t 内存结构 iOS14以前是big iOS14以后编译期间就确定下来的,是small,在运行期添加的方法,是big
runtime08 - 方法缓存Cache_t
缓存的底层结构: 是一个hash表, 对应的元素是bucket_t, 初始尺寸是2的1次方, 最大尺寸是2的16次方
runtime07 - methodSwizzle
方法交换的原理 在本类开始, 顺着继承链, 在方法列表中, 查找要交换的Method, 查找到后交换Method的imp指向
Foundation01 - KVO
KVO 原理: 利用Runtime, 动态生成要监听对象的类的子类, 并将要监听的对象的isa指针指向这个新生成的子类 重写要监听的keypath对应的set方法
runtime06 - associated
associated基础使用 associated原理 associated绑定weak属性 associated可用的策略
runtime05 - catogory
category的作用 category的结构 category的原理 与extension的区别 分类是否能增加成员变量
runtime04 - initlialize方法
initialize调用时机: 第一次调用跟类或者子类相关的方法的时候, 会利用消息发送机制调用类的+initialize方法
runtime03 - load方法
load方法的调用时机: 在main函数之前, dyld加载程序到内存的过程中, 会加载并初始化类/分类, 加载完后, 就会调用load方法
runtime02 - isa指针
isa的底层结构: isa 是一个共用体, 共用体占用的内存大小, 跟它占据内存最大的成员变量相同, (isa一共是8字节)
runtime01 - 对象内存布局
OC NSObject对象的内存布局是怎么样的? 占据多少内存? OC 普通对象的内存布局是怎么样的? 占据多少内存?