步骤简化工具 MJAppTools 编译放在手机目录,usr —> bin中 MJAppTools 如果没有权限...[作者空间]
Runloop应用: Timer失效问题; 线程保活; Runloop的运行逻辑: 入口函数 通知Observer...[作者空间]
iOS中有2套API来访问和使用RunLoop Foundation:NSRunLoop CoreFoundati...[作者空间]
传送门: Runtime的几个常规应用 类相关: 动态创建一个类(参数:父类,类名,额外的内存空间) Class ...[作者空间]
objc_msgSend()实现 3. 消息转发:__forwarding__ 这个阶段代码没有开源,这里有一份国...[作者空间]
Class内部结构中有个方法缓存(cache_t),用散列表(哈希表)来缓存曾经调用过的方法,可以提高方法的查找速...[作者空间]
method_t method_t是对方法\函数的封装 断点查看方法 仿源码自定义ClassInfo.h,从源码中...[作者空间]
场景如下: 当离开作用域时,person对象销毁,所以“1”号线消失; “2”、“3”因为是强引用,所以相互持有,...[作者空间]
当block在栈上时,并不会对__block变量产生强引用; 当block被copy到堆时:1.会调用block内...[作者空间]
场景: 不可以在block内部直接修改age的原因: 将以上代码转为C++(xcrun -sdk iphoneos...[作者空间]
当block内部访问了对象类型的auto变量时: 如果block是在栈上的(访问了auto变量的block),将不...[作者空间]
block有3种类型,可以通过调用class方法或者isa指针查看具体类型,最终都是继承自NSBlock类型 __...[作者空间]
Block的本质: block本质上也是一个OC对象,它内部也有个isa指针; block是封装了函数调用以及函数...[作者空间]
load方法解析- initialize方法解析 load 和 initialize方法的区别: 1、 调用方式:...[作者空间]
+initialize方法会在类第一次接收到消息时调用; 调用顺序: 先调用父类的+initialize,再调用子...[作者空间]
+load方法会在runtime加载分类、类时调用; (即使这个类根本没有调用过) 每个类、分类的+load都会调...[作者空间]
KVO的本质: 本质是重写set方法。 1、利用Runtime API 动态生成一个全新的子类,并且让instan...[作者空间]
对象的本质 OC对象的本质是结构体,结构体内部是一个指针; 1、引申:一个OC对象最少占用几个字节? 一个指针占用...[作者空间]
手动实现set/get方法; 知识点:关联对象。[作者空间]