首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
底层原理
潜水的鱼儿
创建于2021-06-05
订阅专栏
学习记录iOS底层原理
等 22 人订阅
共32篇文章
创建于2021-06-05
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
底层原理-13-类的加载(上)
之前我们探究了dyld的加载流程,知道了编译的大概意思:把我们写的代码转换机器识别的代码,通过dyld把动态库进行链接最后生成可执行mach-o文件。那么对于我们日常开发中我们创建的类是怎样加载到内存
底层原理-12-dyld动态链接器加载流程
1.dyld介绍 dyld是苹果的动态连接器,是苹果操作系统的重要组成,在系统编译好后,交给dylb进行链接把依赖的库生成可执行文件。英文全称是:the dynamic link editor.简单介
底层原理-11-objc_msgSend之消息转发
1.instrumentObjcMessageSends分析 之前我们在慢速查找中没有找到imp会进行方法决议,但是如果方法决议中还是没有处理怎么办? 我们在慢速查找中会把找到的方法进行缓存,log_
底层原理-10-objc_msgSend之方法动态决议
1.动态方法决议分析 之前我们在消息的慢速查找中,对于没有找到的方法,苹果会给我们1次机会进行弥补就是之前慢速查找的resolveMethod_locked(inst, sel, cls, behav
底层原理-09-objc_msgSend之慢速查找
上一篇之前进行从class的缓存中查找,没查找到进入__objc_msgSend_uncached,接下来分析下慢速查找 1.慢速查找 源码: 很简单,就是去方法列表查询,看下MethodTableL
底层原理-08-objc_msgSend之快速查找
1.objc_msgSend快速查找 之前我们进入源码大致看了下objc_msgSend汇编源码如下: 首先判断recevier是否为空,为空的话,判断是否支持小端,不支持的话直接返回空。 小端下,判
底层原理-07-Runtime运行时和方法的本质
1.Runtime运行时 1.1 概念 相比运行时,有一个编译时的概念 编译时:我们开发的时候,编程软件帮我们检查一下方法,语法是否存在错误,引用,环境是否有错误。会在编写代码的时候提醒你错误或者警告
底层原理-06-类的cache_t分析
1.cache_t的源码分析 之前我们探索了类的claas_data_bits_t ,今天来分析下cache_t ,先打印下LGPerson 进入源码: 我们对缓存操作肯定是对属性或者方法进行存储和读
底层原理-05-类的内存优化
1.WWDC 2020 - 1.类的优化 wwdc地址:https://developer.apple.com/videos/play/wwdc2020/10163/ 类的加载过程中结构 苹果对类的结
底层原理-04-类的探究
1.类的关系探究 类是否是具有唯一性 打印后地址都是 0x100008400-0x100008400-0x100008400-0x100008400说明在我们内存中KBSon应该是唯一的,类似我们开发
底层原理-03-对象的本质和isa探究
1.对象的本质是什么 作为一个iOS开发,我们在进行日常使用 Objective-C开发时都知道这是苹果对c/c++的封装,事实上任何一个高级语言都是对基本语言的封装。方便我们开发者提高效率,在规定的
底层原理-02-结构体内存分析
首先可以看一张基本数据类型内存图 基本上一样只有long类型在64位处理器是8个字节 1.下面结构体所占内存大小一样吗? 首先我们看下下面的代码 2个属性完全一样的结构体,但是打印的大小不一样打印发现