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;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步