首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Mac OS/iOS OC底层研究
猫小花
创建于2021-07-16
订阅专栏
学习OC底层知识
等 2 人订阅
共14篇文章
创建于2021-07-16
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
[OC] OC中的深拷贝和浅拷贝
1: 什么是深浅拷贝 苹果官方文档里: There are two kinds of object copying: shallow copies and deep copies. The norma
[OC] OC中的单例
1: 单例的定义 在程序运行的整个过程中,根据类创建的所有的对象以及 copy 的对象,其内存地址都是一样的,也就是说,只要是单例,那么系统就只会创建一次, 只会给其分配一次存储空间; 2: 单例的作
[OC] OC中的反射机制
1: OC反射的定义 OC的反射机制和java的反射机制类似 java中的反射机制概念: 在运行状态下,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能调用它的任意一个方法,这
OC小知识点总结(updating)
1: 类与对象 1.1 OC类方法和对象方法对比 1.2 类方法的好处: 1.3 类方法的场合: 1.4 如果在类方法中调用self 会有什么问题? 1.5 对象,类对象,元类,跟元类结构体的组成以及
[OC底层]类的原理分析
1:首先熟悉几个LLDB的指令 LLDB打印isa信息: x/4gx:读取内存,打印内存中存储的数据 p/x:以16进制形式输出 0x00007ffffffffff8:是ISA_MASK的值,&该值的
[OC底层]关于isa
1:准备工作 isa是什么? isa是一个Class 类型的指针,每个实例对象的第一个成员变量就是isa指针,他指向对象的类,而Class里也有个isa的指针, 指向meteClass(元类)。 下载
[OC底层]对象的本质
1:Objective-C的本质 Objective的底层代码是通过C/C++来实现,所以Objective-C 面向对象是基于C/C++数据结构来实现. 将OC的文件编译成C++文件一共有两种方式:
[OC底层]malloc内存分析
本篇文章通过一个小例子过一下malloc的源码 首先我们建立一个person类,对应建立几个属性,然后执行对sizeof(),class_getInstanceSize(),malloc_size()
[OC底层]联合体和位域
位域 位域可以使内存更加优化,有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。 位域是把一个字节中的二进制位分为几个不同的区域,并说明每个区域的位数. 例如存放一个布尔类型
[OC底层]LLVM对alloc的优化
从上面的注释,我猜测是SEL和IMP进行了交换? 首先我们定位到类的加载映射里面找到_read_image方法, 这个方法里面有处理映射方法的代码块 然后在这个长长的方法里面我跟踪到了另一个方法: f
[OC底层]内存字节对齐
1:什么是内存对齐 首先看一个小例子: 输出为:8 在Mac系统中 int占4个byte, char占1个byte, 那么把它们放在结构体里应该站在4 + 1 = 5byte. 但是结构是8byte,
[OC]NSClassFromString的用法
Class _Nullable NSClassFromString(NSString *aClassName); 通过这个方法来判断程序中存不存在某个类 例如: 或者利用一个字符串来创建一个类或对象
[OC]OC的动态特性
OC 的动态特性包括三个方面: - 动态类型(Dynamic typing) 首先了解一下什么是静态类型: 将一个变量定义为特定类的对象时,使用的是静态形态 动态类型是程序直到执行时才能确定所属的类,
[OC 底层] alloc 原理初探
%p:打印对象的地址 int main(int argc, const char * argv[]) { studyAlloc *a1 = [studyAlloc alloc]; studyAlloc