摘要: 转载链接:Objective-C Method Swizzling 文章目录 1. Method Swizzling 常用实现方案2. 研究背景 1.1. 方案 A 1.2. 方案 B 3. Hook 顺序:先 Child 后 Super 3.1. Super 未实现方法,Child 未实现方法 3 阅读全文
posted @ 2019-06-27 18:28 mustard22 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 转载链接:Threading Programming Guide(3) 文章目录 1. 同步 1.1. 同步工具 1.1.1. 原子操作 1.1.2. 内存屏障和 Volatile 变量 1.1.3. 锁 1.1.4. 条件变量 1.1.5. Perform Selector 1.2. 同步开销与性 阅读全文
posted @ 2019-06-27 18:22 mustard22 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 转载链接:Threading Programming Guide(2) 文章目录 1. Run Loops 1.1. Run Loop 剖析 1.1.1. Run Loop Modes 1.1.2. Input Sources 1.1.2.1. Port-Based Sources(Source1) 阅读全文
posted @ 2019-06-27 18:21 mustard22 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 转载链接:Threading Programming Guide(1) Threading Programming Guide 的学习笔记&翻译,第一部分。 其实苹果建议使用对线程的高级封装,比如 operation objects and Grand Central Dispatch,它们使用方便 阅读全文
posted @ 2019-06-27 18:19 mustard22 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 转载链接:Objective-C 消息发送与转发机制原理 文章目录 1. 八面玲珑的 objc_msgSend 1.1. 源码解析 1.2. 为什么使用汇编语言 2. 使用 lookUpImpOrForward 快速查找 IMP 2.1. 优化缓存查找&类的初始化 2.2. 继续在类的继承体系中查找 阅读全文
posted @ 2019-06-27 18:04 mustard22 阅读(3302) 评论(0) 推荐(0) 编辑
摘要: 转载链接:https://juejin.im/post/5c22023df265da6124157a25 介绍 KVO( NSKeyValueObserving )是一种监测对象属性值变化的观察者模式机制。其特点是无需事先修改被观察者代码,利用 runtime 实现运行中修改某一实例达到目的,保证了 阅读全文
posted @ 2019-06-27 17:50 mustard22 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 转载链接:http://yulingtianxia.com/blog/2014/11/05/objective-c-runtime/ 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的动态特性,使这门古老的语言焕发生机。 1.引言 曾经 阅读全文
posted @ 2019-06-27 17:29 mustard22 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 结论: 1.用KVC改变只读属性的值; 2.若禁止KVC方式修改只读属性的值,可在对应类重写类方法 分析: 1.被readonly修饰的属性,是没有创建setter方法的,所以通过点语法修改属性的值会报错; 2.在类的实现文件里,是可以通过实例变量修改属性的值; 3.在类的外部文件里,可以通过KVC 阅读全文
posted @ 2019-06-27 15:53 mustard22 阅读(1398) 评论(0) 推荐(0) 编辑