首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
IOS底层
大林晓鹿
创建于2021-10-11
订阅专栏
IOS底层专栏
等 5 人订阅
共40篇文章
创建于2021-10-11
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
iOS 底层探索篇 —— KVO 底层原理(上)
这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战 1. KVO KVO(Key Value Observing, 键值观察)是Objective-C对观察者模式的实现,每次当被观察对象的某
iOS 底层探索篇 —— KVC 底层原理
这是我参与8月更文挑战的第18天,活动详情查看:8月更文挑战 1. Method Swizzling的坑与应用 1.1 method-swizzling 是什么? Method-Swizzling实际
iOS 底层探索篇 ——OC底层面试解析
这是我参与8月更文挑战的第17天,活动详情查看:8月更文挑战 1. 关联对象在那里移除 关联对象在objc_removeAssociatedObjects方法里面的_object_remove_ass
iOS 底层探索篇 ——类的加载原理补充,类拓展和关联对象
这是我参与8月更文挑战的第16天,活动详情查看:8月更文挑战 1.分类加载是否需要排序 由上一篇文章知道,在方法列表中,2个分类的方法的数组指针是在主类之前的,并且数组指针里面是经过排序的。 首先添加
iOS 底层探索篇 ——类的加载原理(下)
这是我参与8月更文挑战的第15天,活动详情查看:8月更文挑战 1. 为什么要有ro,rw,rwe ro被复制一份到rw里面,这是因为在运行时分类可以添加方法,而程序员也可以动态添加方法或者属性到类里面
iOS 底层探索篇 ——类的加载原理(中)
这是我参与8月更文挑战的第14天,活动详情查看:8月更文挑战 _read_images流程分析ro,rw 上回说到readClass 里面给类加上了名字,那么ro,rw是在哪里加的呢?回到_read_
iOS 底层探索篇 ——类的加载原理(上)
这是我参与8月更文挑战的第13天,活动详情查看:8月更文挑战 1. objc_init 做了什么 上文说到了objc_init调用了_dyld_objc_notify_register,初始化了dyl
iOS 底层探索篇 —— dyld加载流程(下)
这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战 1 dyld加载流程分析(下) 上文说到_objc_init中调用了_dyld_objc_notify_register(&map_ima
iOS 底层探索篇 —— dyld加载流程(上)
这是我参与8月更文挑战的第11天,活动详情查看:8月更文挑战 1. 应用程序加载 1.1库 每个程序的运行都会依赖一些基础的库,比如说UIKit,CoreFoundation等,库是一些可执行的二进制
iOS 底层探索篇 ——Runtime-消息转发
这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战 上文说到instrumentObjcMessageSends,那么这个方法是怎么来的呢。 在log_and_fill_cache里面有一个
iOS 底层探索篇 ——Runtime-objc_msgSend流程分析 - 慢速查找流程 (下)
这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战 方法无法找到流程分析 上文说到,如果所有的父类都找完了还没找到方法,那么imp就会设为forward_imp,那么继续往下走,看到会返回im
iOS 底层探索篇 ——Runtime-objc_msgSend流程分析 - 慢速查找流程 (上)
这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战 接着上篇的代码分析 真机中探寻objc_msgSend 重新创建一个app工程,在真机上跑代码来探索objc_msgSend。 打开alwa
iOS 底层探索篇 ——Runtime-objc_msgSend流程分析 - 快速查找流程
这是我参与8月更文挑战的第7天,活动详情查看:8月更文挑战 补充:在lldb中调用方法为什么mask为7 我们看到在代码中调用方法的情况,那么在lldb中调用方法呢?试一下: 这里的mask变成了7,
iOS 底层探索篇 ——Runimte 运行时&方法的本质
这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战 何时进行insert 上文讲了insert这个方法,那么到底什么时候进行插入呢。我们在源码中搜索->insert,看看insert方法什么时
iOS 底层探索篇 —— Cache分析
这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战 Cache底层分析 cache结构猜测 之前我们在获取bits的时候,是通过内存平移,那么我们获取cache,也可以通过内存平移。 isa和
iOS 底层探索篇 —— 类的原理分析-下
这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战 成员变量 & 属性 & 实例变量 属性(property):在OC中是通过@property开头定义,且是带下划线成员变量 + setter
iOS 底层探索篇 —— 类的原理分析-上
这是我参与8月更文挑战的第3天,活动详情查看:8月更文挑战 一. 类的原理分析 类的原理分析主要是分析 isa以及 继承关系. 从 isa 开始探索 - isa走位链 首先我们先获得isa的掩码 0x
iOS 底层探索篇 —— OC对象本质 & noPointerIsa|8月更文挑战
一. 对象的本质探索 Clang clang是一个由Apple主导编写,基于LLVM的C/C++/OC的编译器。 操作代码 实例 通过这个指令,就可以把main.m 编译成 main.cpp 文件,可
iOS 底层探索篇 —— 内存字节对齐分析|8月更文挑战
LLVM拦截优化 上一篇说到alloc流程,第一步应该是alloc放法,那么实际上是不是这样呢?我们验证一下: 我们在alloc的地方打个断点,运行一下: 打开汇编: 发现这里实际上走的是objc_a
iOS 底层探索篇 —— alloc 流程|8月更文挑战
1. alloc (id)alloc { return _objc_rootAlloc(self); } 在 alloc 中实际调用了 _objc_rootAlloc 的方法,并把自己作为参数传入方法