美文网首页
笔记02 OC 对象

笔记02 OC 对象

作者: PPFSaber | 来源:发表于2021-03-11 21:09 被阅读0次

7 oc 对象分为三种
1 instance 实例对象 有isa 指针(指向类对象)和 其他成员变量
3 meta-class 元类对象 元类对象是用来描述类的(获取方式 为 object_getClass([NSObject class]) ) 包含 isa 指针 superclass指针 类的类方法信息

1.Class objc_getClass(const char *aClassName)
1> 传入字符串类名
2> 返回对应的类对象

2.Class object_getClass(id obj)
1> 传入的obj可能是instance对象、class对象、meta-class对象
2> 返回值
a) 如果是instance对象,返回class对象
b) 如果是class对象,返回meta-class对象
c) 如果是meta-class对象,返回NSObject(基类)的meta-class对象

3.- (Class)class、+ (Class)class
1> 返回的就是类对象

实例对象 isa 指向 class 对象 class 的isa 指向 对应的 meta-class,所有的 meta-class 的isa 直接指向最基础的基类的 meta-class
instatnce isa -> class isa -> meta-class

如果 A 类 继承自 B B 继承自 C
那么 A class 的superClass 指向 B class,B class 的superClass 指向 C class 对象
那么 A 的元类 的superClass 指向 B 的元类,B 的元类 的superClass 指向 C 的元类 对象

基类的 meta-class 的 superclass 指向 基类的 meta-class 对应的 class 对象

image.png

8 构建 和 OC对象 相同结构的结构体可以 直接把 OC 对象强行 (通过 __bridge struct )转为结构体,可以通过结构体属性访问查看 oc 对象隐藏的属性和方法

Ma8 窥探struct objc.class的结构.png

相关文章

  • 笔记02 OC 对象

    7 oc 对象分为三种1 instance 实例对象 有isa 指针(指向类对象)和 其他成员变量3 meta...

  • 内存管理--简单整理

    课堂笔记: 只有OC对象才需要进行内存管理的本质原因是OC对象存放在堆里面,非OC对象一般放在栈里面(栈内存会被系...

  • 小马哥视频笔记-OC基础知识

    复习一遍OC基础知识,做一个完整笔记[toc] OC初步认知 OC是兼容C语言的OO:面向对象OOP:面向对象编程...

  • OC 与 Swift

    OC对象的本质(上):OC对象的底层实现原理OC对象的本质(中):OC对象的种类OC对象的本质(下):详解isa&...

  • OC对象的本质(中)—— OC对象的种类

    OC对象的本质(上):OC对象的底层实现原理OC对象的本质(中):OC对象的种类OC对象的本质(下):详解isa&...

  • OC对象的本质(下)—— 详解isa&supercl

    OC对象的本质(上):OC对象的底层实现原理OC对象的本质(中):OC对象的种类OC对象的本质(下):详解isa&...

  • OC底层学习笔记(2)-OC对象,isa指针,superclas

    注:文章为自己学习李明杰老师的OC底层视频做的随手笔记 OC的对象主要可分为三类1.instance对象----实...

  • 干货 | OC渲染器学习笔记(十二)

    哈喽!大家好! 今天分享的OC渲染器知识学习笔记(十二),看完有用的话,别忘记点赞哦! oc散布(分布)对象 oc...

  • weak和assign的区别

    1、weak OC对象 2、assign 基本数据对象 OC对象 3、strong OC对象 4、copy NSS...

  • iOS OC对象的本质

    先来一张OC对象的关系图 oc对象关系图 1、oc对象包括instance对象、class对象、metaclass...

网友评论

      本文标题:笔记02 OC 对象

      本文链接:https://www.haomeiwen.com/subject/wxdgqltx.html