首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
花间梦
掘友等级
iOS
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
29
文章 26
沸点 3
赞
29
返回
|
搜索文章
最新
热门
Runtime--关联对象
之前在Category一文中提到,能不能给Category添加成员变量。 回答是不可以的。 虽然我们可以在Category中声明属性,但是并不会生成成员变量,也不会有setter和getter方法。 如果我们想呢?可以利用关联对象实现这样一个效果。当然,肯定是通过runtime…
Runtime--SideTable
散列表SideTables是内存管理的方案之一,是重要表之一。 包含了引用计数表和弱引用表。 在源码map_images_nolock中,我们之前都是直接定位到最后的read_images方法,这个方法用来加载类。在加载类之上,找到下面代码。 在使用时,调用的是SideTabl…
小整内存管理
程序运行过程中,对系统分配资源的管理技术。 iOS中说的内存管理,管理的就是堆上的内存。 常见的内存管理方式有垃圾回收机制、自动引用计数。 在iOS中采用的是引用计数方式。 引用计数是指将资源(如对象)被引用的次数进行保存,当有新的对象引用时次数递增,有对象解除引用时次数递减,…
Runtime--类加载_dyld_objc_notify_register
在app启动到main之前这一阶段,先是利用dyld进行加载动态库,各种映射。这部分的内容,可以阅读文章应用加载。 接着就进入到runtime层中的_objc_init方法。通过该方法,主要完成类的加载等重要工作。 先放出源码。 开始重点解析_dyld_objc_notify_…
Runtime--Category的加载
搜一下面试相关,发现都会问到分类,也就是Category的知识点,整理一下,以备使用。😄 分类,英文名Category。Objective-C 2.0之后添加的语言特性。 动态的为已有类扩充对象方法、类方法、协议和属性。 创建文件时,File Type选择Category。创…
Effective-Objective 2.0整理
正常写法中的判断条件有index&item。 当数量达到万级别时,执行时间会出现差异。 采用消息结构,非函数调用。 消息结构是指运行时所执行的代码,由运行环境决定。 函数调用是指运行时所执行的代码,由编译器决定。 运行期会检查对象类型。 运行期组件,本质是动态库,包含了对象的数…
Runtime--Cache
目的是为了加速方法的调用。 扒一下 cache。 底层使用增量扩展的哈希表结构进行存储。 查找 key_a。 key_a & mask = 1 ==> index = 1 ==> 匹配,返回。 查找 key_b。 key_b & mask = 1 ==> index = 1 =…
iOS app 启动过程以及优化点
app的进程不在系统中,需要系统内核kernel创建进程。 app的进程在系统中,不需要创建进程,可以理解为是从后台切换到前台。 使用dyld,递归加载,最后调用_objc_init。这个部分,可以看这篇文章iOS 底层探索 - 应用加载,写的很详细。👍 通过设置Enviro…
个人成就
文章被点赞
21
文章被阅读
17,336
掘力值
395
关注了
14
关注者
8
收藏集
1
关注标签
4
加入于
2019-11-29