看了很多大牛的runtime的文章,很多大牛都在用Clang进行源码分析。实属菜鸟的我也尝试了一下使用Clang进行重写,结果呢~呵呵哒,100000行代码~你去找你改了哪个地方给我看~(机制的小伙伴说可以写备注,然后commond+f一下嘛~可是并没有我们想的这么简单,因为事实上还有其它改动)。
某天惊奇的发现了Kaleidoscope这个软件,其功能就是进行两个及以上文件不同比对,支持图像比对~吊吊吊。
不废话看实现。首先我们创建一个简单的测试类。
比如说HZTestObject吧。
然后在终端中执行cd到文件的当前目录 cd /usr/……………………
clang -rewrite-objc HZTestObject.m
然后系统会帮你创建好HZTestObject.cpp文件
这个时候把它先保存到另外一个地方,因为后面要拿这个进行原版比对。
现在我们就可以往里面进行你想要的东西内容的填充了。
之前看过这位大牛对于runtime的理解,默默偷点内容过来。
OK,在函数的实现中加入这些:
- (instancetype)init{
self = [super init];
if (self) {
[self foo];
}
return self;
}
- (void)foo{
NSLog(@"log");
}
添加完后继续在终端执行:
clang -rewrite-objc HZTestObject.m
OK~运行得到了另外一个.cpp文件~然后就Kaleidoscope
OK 结果如图~关于程序解释参考Chun Tips的解释吧~