OC底层
文章平均质量分 91
水月Dragon
这个作者很懒,什么都没留下…
展开
-
iOS启动优化
#热启动与冷启动 冷启动:App点击启动前,此时App的进程还不在系统里,内存中不包含app相关数据,需要系统新创建一个进程分配给App。 热启动: App在冷启动后用户将App退回后台,此时App的进程还在系统里,数据仍然存在,用户重新返回App的过程。 APP冷启动完整流程 冷启动的整个过程是指从用户唤起 App开始到 AppDelegate 中的 didFinishLaunchingWithOptions 方法执行完毕为止,并以执行main()函数的时机为分界点,分为pre-main和 main(原创 2022-03-01 10:13:56 · 241 阅读 · 0 评论 -
block底层
block概念 block本质上是一个OC对象(结构体),它享有所有OC对象的待遇,只不过普通OC对象用来封装数据,而block用来封装函数以及函数的调用环境。所谓封装函数,是指block内部会把block的参数、返回值、执行体封装成一个函数,并且存储该函数的内存地址;所谓封装函数的调用环境,是指block内部会捕获变量,并且存储这些捕获的变量。 block分类 NSGlobalBlock 全局block,位于内存全局区,未引用任何局部变量 void (^block)(void) = ^{原创 2022-02-17 17:54:50 · 1003 阅读 · 0 评论 -
isa结构分析
isa结构分析 一、isa是什么OC对象本质上对应的为结构体,所有的对象都包含一个isa属性(为第一个成员变量),用来关联对象和存储一些对象的信息。对象通过alloc创建对象分配内存后,调用initInstanceIsa来初始化isa属性,接下来我们先看一下实例方法的实现 inline void objc_object::initInstanceIsa(Class cls, bool hasCxxDtor) { ASSERT(!cls->instancesRequireRawIsa(..原创 2020-09-10 14:02:27 · 665 阅读 · 0 评论