首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
MJ底层原理笔记
xli
创建于2022-07-12
订阅专栏
MJ底层原理学习记录
等 1 人订阅
共14篇文章
创建于2022-07-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
iOS底层原理笔记 - OC对象的本质
main.m中,创建一个NSObject对象: int main(int argc, const char * argv[]) { @autoreleasepool { N
iOS底层原理笔记 - OC对象的分类
OC对象主要分三种: instance对象(实例对象) class对象(类对象) meta-class对象(元类对象) instance(实例对象) instance对象就是通过类alloc出来的对象
iOS底层原理笔记 - Block的变量捕获
Block的本质 block本质上也是一个OC对象,它内部也有个isa指针 block是封装了函数调用以及函数调用环境的OC对象 底层结构如图所示 block的变量捕获 什么是block的变量捕获?
iOS底层原理笔记 - block的类型
Block的类型 \ 一、block的三种类型 \ NSGlobalBlock NSStackBlock NSMallocBlock \ \ \ \ 每种类型的block调用结果如下: \ \ 二、b
iOS底层原理笔记 - __block
__block \ __block可以用于解决block内部无法修改auto变量值的问题 __block不能修饰全局变量,静态变量 编译器会将__block变量包装成一个对象 \ 问题一:以下两段代码
iOS底层原理笔记 - Runtime结构
Runtime结构 \ OC是一门动态性比较强的语言,跟C、C++语言有着很大不同 OC的动态性是由Runtime API来支撑的 Runtime API提供的接口基本都是C语言的,源码由C/C++/
iOS底层原理笔记 - Runtime应用01-查看私有成员变量
一、Class 通过之前文章我们可以知道,所有对象都有一个isa指针指向它对应类的Class,而Class则是一个objc_class结构体,结构体中: 实例变量列表objc_ivar_list 方法
iOS底层原理笔记 - Runtime应用02-字典转模型
Runtime应用02-字典转模型,首先创建一个字典,根据key来记录property的属性名称,创建一个模型
iOS底层原理笔记 - Runtime应用03-替换方法实现
通过#import <objc/runtime.h> 1.我们可以找到class_getInstanceMethod方法(获取类的实例方法) 2.用method_exchangeImplementat
iOS底层原理笔记 - Runtime应用04-常用API
一、 1.动态创建一个类(参数:父类、类名、额外的内存空间) objc_allocateClassPair(Class superclass, const char * name, size_t ex
ARC中dealloc过程以及.cxx_destruct的探究
ARC中dealloc过程以及.cxx_destruct的探究 ARC文档中对dealloc过程的解释 大概意思是,dealloc方法在最后一次release后,在实例变量被销毁之前,调用;父类的de
objc_msgSend方法的调用
1.方法的本质 通过之前分析对象的本质,同理,我们也可以通过clang来分析方法的本质。 首先创建Person类,在Person类中我们先实现一个方法: .h .m 然后我们在main函数中调用一下p
objc_msgSend快速查找流程
首先要知道,objc_msgSend 是汇编语言写的,区别于 C/C++ 实现的源码,优势是汇编语言非常快,对于方法查找这种经常发生的高频率事务,速度非常重要。 另外一点味了实现参数的不确定性(动态性
iOS底层原理笔记 - isa指针
isa指针 instance 的 isa 指向 class 当调用对象方法时,通过 instance 的 isa 找到 class,最后找到对象方法的实现进行调用; class 的 isa 指向 me