学习MJ的视频课程,整理总结知识点–Runtime API

本文主要简单介绍Runtime常用的一些API,相关的API包括类、成员变量、属性、方法等。另,文章前面已介绍不少Runtime的API,这里不再重复

学习MJ的视频课程,整理总结知识点–objc_msgSend

本文主要从Class结构体出发,讲解class_rw_t的结构及class_rw_t中的methods,及Class中的cache_t cache

学习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、关联对象的原理。