原创 iOS 類拓展分析、load_iamges分析、initalize分析

iOS 類拓展分析、load_iamges分析、initalize分析前言1.  類拓展分析2.  關聯對象原理3.   load_images 分析4.   initalize 分析總結 前言   通過之前幾篇對read_ia

原创 數據結構與算法之如何基於順序存儲/鏈式存儲不同角度設計一個棧

數據結構與算法之如何基於順序存儲/鏈式存儲不同角度設計一個棧前言1. 棧的結構2. 順序存儲的棧2.1  順序存儲棧的設計2.2  順序存儲棧的操作3. 鏈式存儲的棧3.1  鏈式存儲棧的設計3.2  鏈式存儲棧的操作4.棧和遞歸

原创 iOS 類的加載分析

iOS 類的加載分析前言1. objc_init分析1.1  environ_init() 環境變量1.2   tls_init()1.3   static_init()1.4   lock_init()1.5   excepti

原创 數據結構與算法之線性表算法練習

數據結構與算法之線性表算法練習前言題目一題目二題目三題目四題目五題目六題目七 前言 前面瞭解學習了線性表的單向鏈表和單線循環鏈表和雙向鏈表的一些知識,本篇搞幾個算法題實戰一下。首先,做下面準備代碼: #define OK 1

原创 iOS OC 方法查找流程

iOS OC 方法查找流程前言1. `_class_lookupMethodAndLoadCache3`方法查找流程2. 面試題 前言 上一篇關於方法的本質的探索中,我們知道了方法的底層是調用objc_msgSend發送消息,並對

原创 iOS OC 類原理一

iOS OC 類原理一1. `類`和`元類`的創建時機1.1 打印 `類`和`元類`的指針1.2 `command + B`生成可執行文件,然後使用 `MachoView` 打開程序二進制可執行文件查看2. 指針偏移2.1 普通

原创 iOS 方法動態決議和消息轉發機制

iOS 方法動態決議和消息轉發機制1. 動態方法決議1.1 實例方法動態解析 _class_resolveInstanceMethod1.2 _class_resolveClassMethod小結2. 消息轉發

原创 數據結構與算法之基礎篇

數據結構與算法之基礎篇1.  相關概念2.  時間複雜度和空間複雜度3. 線性表3.1  線性表順序存儲3.2  線性錶鏈式存儲(單鏈表)   對於很對人而言,“算法”和“數據結構”給人的第一印象就是很難懂,對於算法小白的我來說

原创 iOS OC 方法的本質

iOS OC 方法的本質前言:1. 方法本質初探2. `objc_msgSend`彙編分析 前言: 前面探究了方法在類中的緩存,那麼方法的本質是什麼呢?方法調用在底層做了什麼呢?今天我們來探索一下: 1. 方法本質初探 看一下一段

原创 iOS OC 對象原理探索二

iOS OC 對象原理探索二內存對齊原則1. 數據成員對齊規則:2. 結構體作爲成員:3. 收尾工作:成員變量內存探究1.代碼分析2.calloc源碼分析 上一篇提到alloc開闢內存是8字節對齊,用空間換取查找時間,那麼像in