iOS开发之: clang -rewrite-objc

clang -rewrite-objc的作用是把oc代码转写成c/c++代码,我们常用它来窥探OC的一些秘密。

最简单的例子

新建项目,在main.m里建一个对象,并随意调用其一个方法

iOS开发之: clang -rewrite-objc_第1张图片
屏幕快照 2017-03-03 上午10.11.24.png
iOS开发之: clang -rewrite-objc_第2张图片
屏幕快照 2017-03-03 上午10.08.36.png

接下来,打开终端

个人习惯打开终端的方式
iOS开发之: clang -rewrite-objc_第3张图片
屏幕快照 2017-03-03 上午9.51.36.png

cd 到main.m所在目录

iOS开发之: clang -rewrite-objc_第4张图片
屏幕快照 2017-03-03 上午9.54.44.png

ls查看当前目录文件,确认main.m 存在

iOS开发之: clang -rewrite-objc_第5张图片
屏幕快照 2017-03-03 上午10.13.24.png

开始转换

iOS开发之: clang -rewrite-objc_第6张图片
屏幕快照 2017-03-03 上午10.16.32.png

编译完成,打开main.m所在目录

iOS开发之: clang -rewrite-objc_第7张图片

这个main.cpp就是转换好的东西,双击打开

直接拖到最下面

iOS开发之: clang -rewrite-objc_第8张图片
屏幕快照 2017-03-03 上午10.21.07.png

这就是底层的实现

你可能感兴趣的:(iOS开发之: clang -rewrite-objc)