首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Objective-C底层学习记录
被迫懋学全栈攻城狮
创建于2022-11-28
订阅专栏
Objective-C底层学习记录,根据MJ的课程,学习的记录,如有侵权请联系我
等 1 人订阅
共12篇文章
创建于2022-11-28
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
12、内存管理
iOS中可能会出现的内存问题: CADisplayLink、NSTimer会对target产生强引用,如果target又对它们产生强引用,那么就会引发循环引用 解决方案: 通过使用代理可以让proxy
11、多线程
iOS中的常见多线程方案 GCD常用函数 用同步的方式执行任务 dispatch_sync(dispatch_queue_t queue, dispatch_block_t block); queue
10、Runloop
CFRunLoopModeRef顾名思义,运行循环,在运行过程中循环做一些事情 Runloop的基本作用: 保持程序的持续运行 处理App中的各种事件 节省CPU资源,提高程序性能 Runloop实现
9、Runtime(4)
Runtime中常用的API 交换方法的实现 通过Runtime进行字典转模型,runtime常用API
8、Runtime(3)
接上文找不到方法,进入动态方法解析则会调用该方法 从注释中可以看的,要查找添加到cls中的方法,这个指针指向的对象,可以是个元类对象也可以是一个类对象,其具体逻辑如下 通过resolved获取方法的相
7、Runtime(2)
Objective-C中调用方法的具体流程,简单定义一个类,创建一个实例方法 在main函数进行调用 经过编译,可以得到如下代码,本质上相当于调用了C语言的函数objc_msgSend 其中sel_r
6、Runtime(1)
学习runtime之前先回顾一下isa,在arm64架构之前isa指针就是存放的Class对象的地址或者MetaClass对象的地址,arm64架构之后isa进行了优化,类型是共用体类型,isa需要&
5、block底层
探究block的底层,探究block的本质。 新建一个项目,创建一个简单的block。 接下来进行通过xcrun编译生成指定cpp文件,在文件的最后可以找到有关于block的部分,main方法中只有这
4、Category底层原理
Category的底层结构是什么样的?Category的实现原理。 首先,创建个简单的类和对应的分类 通过执行xcrun -sdk iphoneos clang -arch arm64 -rewrit
3、KVC底层原理
KVC的底层原理,KVC的方法查找顺序 编写一段简单的KVC代码,学习底层原理 Person类和具体实现 通过断点调试可以发现,KVC会首先找到set方法,执行set方法 接下来测试如果找不到set方
2、KVO底层原理
KVO是如何实现的,探究一下 创建个Person类,非常简单的Person类,有一个属性就可以 来到控制器页面创建两个对象,一个KVO监听,一个不监听 输出结果 果然,添加了KVO监听的,可以输出变化
1、Objective-C对象的本质
一个NSObject对象的大小 输出结果如下: class_getInstanceSize并不为一个对象所分配的内存空间,实质为调用该方法 通过OC源码可以发现CoreFoundation对一个对象的