self是ObjC类成员方法的隐藏的第一个参数名,它和C++的隐式this指针是类似作用。可以查看.m文件对应的C代码找到端倪: clang -rewrite-objc demo.m (此处简化以省略必要的ObjC编译选项)
- (id) initWithAge:(int)age {
return [self init:age];
}
对应的C代码如下:
static id _I_Student_initWithAge_(Student * self, SEL _cmd, int age) {
return ((id (*)(id, SEL, int))(void *)objc_msgSend)((id)self, sel_registerName("init:"), (int)age);
}
