学习MJ的视频课程,整理总结知识点–Runtime API
本文主要简单介绍Runtime常用的一些API,相关的API包括类、成员变量、属性、方法等。另,文章前面已介绍不少Runtime的API,这里不再重复
学习MJ的视频课程,整理总结知识点–Runtime API
本文主要简单介绍Runtime常用的一些API,相关的API包括类、成员变量、属性、方法等。另,文章前面已介绍不少Runtime的API,这里不再重复
学习MJ的视频课程,整理总结知识点–super、class面试题
本文讲解super、class相关的一些面试题,利用底层的知识来分析讲解
学习MJ的视频课程,整理总结知识点–objc_msgSend
本文主要从Class结构体出发,讲解class_rw_t
的结构及class_rw_t
中的methods
,及Class中的cache_t cache
。
学习MJ的视频课程,整理总结知识点–class、super
学习MJ的视频课程,整理总结知识点–block的copy、访问对象类型变量的底层实现
本文结合block的特性,探讨ARC下block自动copy的时机;以及block内访问外部的对象类型变量时底层实现;
学习MJ的视频课程,整理总结知识点–__block的底层实现
本文根据前面所学的block的特性,结合Demo来讲解关于block的底层的一些东西。包括block的底层源码,
学习MJ的视频课程,整理总结知识点–block详解
block是OC中实用频率很高的一个功能,同时在其它语言中也有相似的特性,比如swift中的闭包,Python中的闭包等。
本文先通过简单介绍block的使用,然后通过clang
重新编译导出block的一些源码来了解block的底层结构,随后会介绍block中的重要知识点1. block中的变量捕获,2. block的类型
学习MJ的视频课程,整理总结知识点–load initialize的本质
这一篇通过+load
和+initialize
的官方文档并结合Demo来介绍这两个方法。同时会依据runtime源码来介绍+load
和+initialize
底层的逻辑。
学习MJ的视频课程,整理总结知识点–关联对象(Associated)详解
本文通过runtime中objc_setAssociatedObject
源码为切入点,同时结合category的底层结构(struct category_t
)、对象的底层结构(objc_object
),类的底层结构(objc_class
)来讲解OC中的对象关联对象。主要回答:1、为什么分类不能添加属性(根本原因)、2、分类中怎样才能添加属性(关联对象)、3、关联对象的原理。
学习MJ的视频课程,整理总结知识点–Category的本质