首页
首页
BOT
沸点
课程
直播
活动
AI刷题
NEW
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
OC底层原理探索
BBLv
创建于2021-06-06
订阅专栏
Objective-C底层原理探索,由对象的创建(alloc)出发,类的结构分析,逐步深入......
等 17 人订阅
共17篇文章
创建于2021-06-06
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
018-Runtime面试小结
系统提供三张表:散列表、弱引用表、关联对象表 1、load方法在什么什么时候调用? 类load方法 在dyld应用启动时,load_images的时期,进行单个类的收集,通过add_class_to_
017-分类关联对象
类扩展与分类的区别 category:类别、分类 专门用来给类添加新的方法 不能给类添加成员属性,添加了成员变量,也无法获取到 可以通过runtime给分类添加属性 分类中用@property定义变量
016-类的加载原理(下)
通过这篇文章可以获得什么 分类的编译中间产物.cpp文件内的结构怎样构成的? 分类在objc4源码的结构体是怎样构成的? 分类是如何被加载的? 分类加载的核心因素rwe是何时被赋值的? 类在加载的过程
015-类的加载原理(中)
探索概览 如何找到执行class的rw、ro、rwt操作的入口 调试主线 通过最直接的方式:设置断点+写入打印代码,动态调试 只关心我自己自定义的class(FFPerson)的操作 边缘OB,看看测
014-类的加载原理(上)
通过这篇文章可以获得什么 _objc_init探索开始的原因,dyld加载过程中为什么要执行_objc_init? 探索类加载过程中被dyld默认执行的一些函数,在不设置符号断点的时候难以发现 _ob
012-应用程序加载(上)
通过这篇文章可以获得什么 应用加载流程案例 应用加载流程整理 dyld动态连接器基本认知 dyld 2是如何加载程序的 应用启动过程源码分解 dyld::_main关键函数分析 应用启动流程图 现在i
011-消息的动态转发流程(下)
通过这篇文章可以获得什么 instrumentObjcMessageSends辅助分析方法的介绍 动态消息转发的一般探索思路 动态消息转发之快速转发 动态消息转发之慢速转发 动态消息转发之真实场景防止
010-消息的动态转发流程(上)
探索消息转发的起因 我在FFPerson类里面创建了一个实例方法likeGirls,但是并未实现 然后我在main.m文件中初始化FFPerson类,并调用likeGirls方法 出现经典错误:'-[
009-消息的慢速查找流程
通过这篇文章可以获得什么 汇编到源码的执行流程 __objc_msgSend_uncached(慢速查找流程的起因) 为什么要执行慢速查找流程,全部使用汇编进行快速查找不爽吗? 为什么快速查找缓存要使
008-消息的快速查找(下)
通过这篇文章可以获得什么 objc_msgSend流程的简化回顾 真机调试(汇编分析) 真机汇编分解(图解) 关于类cache_t内存扩容在真机情况下的源码模拟 真机与模拟器模式下的cache_fil
007-消息的快速查找(上)
通过这篇文章可以获得什么: 为什么要探索objc_msgSend? cache缓存读取,存储过程是怎样的? OC的编译时与运行时的概要分析 Runtime运行时版本介绍 方法的调用方式都有什么? 方法
006-cache_t分析
通过这篇文章可以获得什么 cache_t是什么? cache_t部分源码分析 关键函数insert分析 为什么要清空oldBuckets,而不是空间扩容,然后在后面附加新的缓存呢? reallocat
005-类的内存结构优化
通过这篇文章可以获得什么 WWDC2020关于runtime优化之数据结构的变化 Clean Memory与Dirty Memory是什么? Dirty Memory拆分优化原理 如何缩小class_
004-类的内存结构分析
通过这篇文章可以获得什么: isa指向图分析 类、元类、根元类的继承关系 类的结构分析 在源码角度分析cache_t占用的内存 在类对象中通过地址偏移找到成员变量 在类对象中通过地址偏移找到ivars
003-OC对象原理探究(下)
通过这篇文章可以获得什么: 什么是对象,对象的本质是什么? 什么是clang,什么是xcrun,基础定义 如何将.m文件编译为.cpp文件 .cpp文件分析过程 结构体与联合体有什么区别 如何指定成员
002-OC对象原理探究(中)
通过这篇文章可以获得什么: 初始化一个对象底层真正的响应流程。 LLVM编译器为什么要Hook alloc方法? LLVM优化的目的是什么? 发现问题,如何在源码层面上探索 alloc加载流程图(包含
001-OC对象原理探究(上)
alloc探索 通过这篇文章可以知道什么: alloc方法是如何开辟内存的,开辟了多少内存? 在alloc过程中内存、指针有什么关系? alloc是如何开辟内存空间的? 如何探索底层源码?方式一、二、