『置顶』Objective-C 底层探索集

这里主要是所有关于 Objective-C 底层探索系列文章的集合列表,用于快速访问同系列文章。

阅读全文

『置顶』数据结构与算法集

这里主要是所有关于博主曾经做过的算法题的分析文列表,用于快速访问同系列文章。

阅读全文

『底层探索』12 - 初探类加载

当可执行文件加载到内存后,dyld 会执行一系列的链接和初始化的流程,这其中也涉及到了类的加载,今天探索类是如何被加载的?

阅读全文

『底层探索』11 - iOS App 启动流程分析一

我们都知道 iOS App 程序的入口是 main 函数,其实在 main 函数之前还有很多步骤要做,做完才会调用我们的 main 函数进入主程序,今天就探索 main 函数之前的流程。

阅读全文

『底层探索』10 - Mach-O 文件分析

不同的系统下,可执行文件的格式也是不同的。我们今天探索的是 iOS 的 Mach-O 文件格式。

阅读全文

用 Swift 实现 LRU 缓存策略

如何用 Swift 来实现一个 LRU 缓存呢?

阅读全文

『底层探索』9 - OC 消息发送流程之消息转发

当向一个对象发送消息时,当快速查找和慢速查找都没有找到方法的 imp 时,在程序 crash 之前,还有一个消息转发流程来进行挽救,接下来我们探索一下消息转发流程。对于不开源的代码,将会用 Hopper Disassembler 来反编译可执行文件进行探索。

阅读全文

『底层探索』8 - OC 消息发送流程之慢速查找

在上篇 OC 消息发送流程之快速查找 中,如果最后没有找到方法的 imp,会跳转到 CheckMiss 或者 JumpMiss。今天将会探索这两个流程。

阅读全文

『底层探索』7 - OC 消息发送流程之快速查找

在 Objective-C 中,当我们调用一个对象的方法后,在底层经历怎样的流程呢?这就是我们今天要探索的。本文会先探索方法缓存查找,也就是快速查找流程。

阅读全文

『底层探索』6 - Cache 中的 Insert Process

在前面的文章了,我们探索了 objc_class 中的 superclass,bits,今天来探索 cache。

阅读全文