OC中的消息机制
用这个命令clang -rewrite-objc main.m,将.m文件转换成.cpp文件,注意要先将目录定位到main.m所在的目录
int main(int argc, const char * argv[])
{
@autoreleasepool {
//例如创建一个NSString对象,其内部是发送了2个消息,对alloc发送一个消息,对[[NSString alloc]发送一个消息
[[NSString alloc] init];
}
return 0;
}
// 转换之后的.cpp文件
int main(int argc, const char * argv[])
{
@autoreleasepool {
// 将多余的修饰删掉,例如void*,就可以得到如下所示的内容
// 对alloc发送一个消息
id value = objc_msgSend(objc_getClass("NSString"), sel_registerName("alloc"));
// 对[[NSString alloc]发送一个消息
objc_msgSend(value, sel_registerName("init"));
}
return 0;
}