摘要: <<<<<< >>>>>> 如果有如下代码片段: 通过 clang -rewrite-objc 生成的c++代码如下: <<<<<< >>>>>> block 实现定义,每一个block都以此结构开始 isa: 指向 _NSConcreteStackBlock FuncPtr: 为block实现的c 阅读全文
posted @ 2018-03-26 09:25 茄菲兔 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 以下为主RunLoop 的输出,能够看到不同的source0,source1,observer CFRunLoop{wakeup port =, stopped = false, ignoreWakeUps = false, current mode = kCFRunLoopDefaultMode, 阅读全文
posted @ 2018-03-23 16:10 茄菲兔 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 1、结构 2、 每个线程对应一个AutoReleasePoolPage 的对象列表 2.1) 线程销毁的时候,释放AutoReleasePoolPage 以及所有对象 2.2) AutoReleasePoolPage 为C++对象,由于重载了new 和 delete 运算符,确保每一个Page分配固 阅读全文
posted @ 2018-03-23 15:37 茄菲兔 阅读(326) 评论(0) 推荐(0) 编辑
摘要: 1、OC 运行期常用对象结构体 基本的结构体定义 typedef objc_class Class; /* 类 */ typedef objc_object *id; /* 各种类型,只要第一个字段为isa_t 即可,兼容Class */ 1.2) isa_t 联合体定义 当64位下,使用 extr 阅读全文
posted @ 2018-03-23 13:44 茄菲兔 阅读(417) 评论(0) 推荐(0) 编辑
摘要: 1、CFRunLoopModeRef 什么时候创建的? 在调用__CFRunLoopFindMode(rl, modeName, create) 1.1)首先通过modeName 在RunLoop 中的_modes/_commentModes 中查找,查找到直接返回,否则要进行 create 判断。 阅读全文
posted @ 2018-03-23 12:16 茄菲兔 阅读(1034) 评论(0) 推荐(0) 编辑
摘要: 作为一名从事多年的软件开发者,我之前从未考虑要开通一个技术博客,始终认为自己的个人能力不足以分享,但是后来还是决定开通一个技术博客,将之前的学习笔记,进行一次整理。 阅读全文
posted @ 2018-03-23 12:08 茄菲兔 阅读(86) 评论(0) 推荐(0) 编辑