Objective-C runtime - 如果还有其他的话
前言
系列应该是最后一篇:还真要来讲一点其他的东西:
- self && super
- alloc && init
self && super
self
self是每个类函数中的隐藏参数,比如一个类的函数- (void)someFunc;
它经过编译之后会变成 void someFunc(id self, SEL _cmd);
当有一个对象去调用该函数时,比如 [someObj someFunc];
那么等价于 someFunc(a, @selector(someFunc));
会将a自己传入该函数
super
super是一个预编译命令,他会先调用父类的方法。比如在init方法中 [super init]; 该方法会先调用父类的init方法
alloc && init
alloc
alloc方法会生成一个类的对象,并将该类对象的isa变量初始化
init
讲道理,[NSObject init]方法没做啥事
参考
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.