美文网首页
OC对象的方法结构

OC对象的方法结构

作者: 开发界小学生 | 来源:发表于2018-08-01 10:21 被阅读0次

OC是一门动态语言

OC的动态性都是由Runtime来支撑的
isa指针
arm64架构之前:isa就是一个普通的指针 存储class metal-class地址
arm64架构之后:对isa进行优化,变成一个共用体,用位域来储存更多信息

Method

结构类型:

struct method_t{
SEL name; // 函数名
const char *types; // 编码(返回值类型,参数类型)
 IMP imp;// 函数地址
}

方法缓存

使用散列表来缓存曾经调用的方法,可以提高查找速度 (牺牲内存空间,增加查找效率)

struct cache_t{
    struct bucket_t *_buckets; // 散列表
    mask_t _mask // 散列表的长度
    mask_t _occupied; 已经缓存的方法数量
}
struct bucket_t {
    cache_key_t _key;// SEL作为KEY
    IMP _imp; // 函数的内存地址
}

相关文章

  • OC对象的方法结构

    OC是一门动态语言 OC的动态性都是由Runtime来支撑的isa指针arm64架构之前:isa就是一个普通的指针...

  • 52个有效方法(14) - 理解“类对象”的用意

    在OC中,类,对象和方法其实都是一个C的结构体。 描述Objective-C对象所用的数据结构定义 每个对象结构体...

  • 从零学习Swift 08: 继承体系

    一: 方法 方法的定义: 同 OC 一样, Swift 也有实例方法和对象方法: 在 Swift 中,类,结构体,...

  • 01-OC对象的本质

    OC是通过C/C++的什么数据结构实现我们的OC对象呢 结构体--OC对象的本质就是C/C++的结构体 Class...

  • Lesson 0 Objective-C basic

    1.OC特性 (1)OC方法:对象方法(-),类方法(+) 1.对象方法:-(returnType)initWit...

  • 深入解构objc_msgSend函数的实现

    objc_class(Class对象)结构简介 熟悉OC语言的Runtime(运行时)机制以及对象方法调用机制的开...

  • 类与结构体

    在 OC 中:1.结构体只能封装属性,而类不仅可以封装属性还可以封装方法.2.结构体变量分配在栈,OC 对象分配在...

  • 关于为何view.frame.size.width = *报错

    OC语法规定:OC对象的结构体属性的成员变量无法直接赋值, 但是可以给OC对象的结构体属性赋值 也就是说 可以直接...

  • iOS基础知识(三)对象本质

    一、对象的本质: 对象:OC对象的本质是结构体,结构体内部是一个指针 1、引申:一个OC对象最少占用几个字节? 一...

  • Runtime

    oc对象 OC类对象元类对象编译后的结构如下结构体 isa arm64架构之前isa只是一个指针,指向类对象或者元...

网友评论

      本文标题:OC对象的方法结构

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