self与super

作者: 水无月之痕 | 来源:发表于2019-08-05 15:01 被阅读0次

self为实例对象:[self class]\object_getClass(self), 返回都是本类的类对象;object_getClass([self class])返回都是本类的元类。

self为类对象:[self class]返回都是自身self,即为本类的类对象;object_getClass(self) 等于 object_getClass([self class])

//NSObject类实现
+ (Class)class {
    return self;
}

- (Class)class {
    return object_getClass(self);
}

元类、类,都是对象,但是仅且只有一个,因为具有isa指针,isa指针是指向类(is a class instance)

元类、类、实例

运行时创建类/方法/变量:
https://blog.csdn.net/chenxi506343891/article/details/73496609

相关文章

  • Objective-C self与super的区别

    Objective-C self与super的区别 [self class] 和 [super class] 在当...

  • if(self=[super init]) 为什么加if

    if(self=[super init])为什么不用“==”而用“=”: 这里不是判断self与[super in...

  • Runtime源码

    1 self/super与NSObject对象 self, super不计算在object的size里面,用cla...

  • self、 superclass 、 super的区别

    self、 superclass 、 super的区别 self、 superclass 、 super self...

  • day23 self 与 super , 父类调用子类方法 -

    day23 1.self 与 super , 父类调用子类方法 1.1 self 与 super 前面也写到了se...

  • super

    示例 self [self class]、[self superclass]调用流程 super [super c...

  • self与super

    self访问成员变量 成员变量是定义在类中的变量,它可以被所在类的方法所调用,而局部变量是定义在方法中的变量,当局...

  • self 与 super

    我们都知道:self 是类的隐藏参数,指向当前调用方法的这个类的实例。那 super 呢? 很多人会想当然的认为“...

  • self与super

    self为实例对象:[self class]\object_getClass(self), 返回都是本类的类对象;...

  • self与super

    输出是什么? 其实可以通过clang来将代码编译为c++后,可以看到 [super class] 转化成 再参考i...

网友评论

    本文标题:self与super

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