clang -rewrite-objc的作用是把obicetive-c代码转写成c/c++代码,一般用于查看obicetive-c源码的秘密,尤其是关于Block的知识。
1. 看一段最简单的代码。
然后打开终端,对main.m执行命令:
命令执行以后,目录下多出一个main.cpp文件,打开一看,四万多行代码。其关键代码如下:
一般大家用这个例子探究block的原理。
2. 指定SDK
oc代码要转成c代码时,真机和模拟器上差别还是挺大的。如果需要指定SDK,那么要结合xcrun命令,
真机:
模拟器:
模拟器和真机都有默认的SDK版本,某个版本号的SDK
3. 指定framework
xcrun -sdk iphonesimulator10.2.1 clang -rewrite-objc –F /Users/einstein-administrator/Desktop/einstein/einstein main.m
以上都是简单示例,实际工作中可以同时指定多个源文件、多个framework。