首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
底层
Coder_Kang
创建于2021-07-06
订阅专栏
iOS底层知识
暂无订阅
共8篇文章
创建于2021-07-06
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
底层四: block
局部变量传递原因: auto变量出了作用域就进行了释放,这个时候block内要访问这个变量,就必须进行值的捕获,否则会造成坏内存访问。而static始终驻留在全局数据区,直到程序运行结束。 全局变量不会捕获原因: 静态局部变量虽然不会销毁,但是静态局部变量作用域会进行销毁,导致…
底层三:Category
默认情况下,因为分类底层结构的限制,不能添加成员变量到分类中。但可以通过关联对象来间接实现,关联对象原理
底层二:KVO、KVC、NSNotification
KVO、KVC、NSNotification的实现原理以及使用方法介绍 KVO、KVC、NSNotification的实现原理以及使用方法介绍
底层一:OC对象的本质
OC对象介绍,包括alloc内存分配过程、isa和superClass、instance对象、class对象、meta_class对象
底层八:内存管理
iOS的内存管理,NSTimer、NSProxy、GCD定时器、内存布局、autorelease原理
底层五:Runtime
class_rw_t里面的methods、properties、protocols是二维数组,是可读可写的,包含了类的初始内容、分类的内容。class_ro_t的内容会被放到方法实现类数组methods的栈底,分类的方法会加载到栈顶的位置 达到快速查找方法的实现。以空间换取时间
底层六- RunLoop
概念: 一般来讲,一个线程一次只能执行一个任务,执行完成后线程就会退出。如果我们需要一个机制,让线程能随时处理事件但并不退出 从上面的代码可以看出,线程和 RunLoop 之间是一一对应的,其关系是保存在一个全局的 Dictionary 里。线程刚创建时并没有 RunLoop,…
底层七-多线程
产生死锁条件: 使用`sync`函数往`当前`的`串行队列`中添加任务,会卡住当前的串行队列(`产生死锁