Objective-C runtime - 如果还有其他的话

前言

系列应该是最后一篇:还真要来讲一点其他的东西:

  1. self && super
  2. 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]方法没做啥事

参考

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器