关于clang -rewrite-objc的点滴

clang -rewrite-objc的作用是把obicetive-c代码转写成c/c++代码,一般用于查看obicetive-c源码的秘密,尤其是关于Block的知识。

1. 看一段最简单的代码。


关于clang -rewrite-objc的点滴_第1张图片

然后打开终端,对main.m执行命令:

命令执行以后,目录下多出一个main.cpp文件,打开一看,四万多行代码。其关键代码如下:

关于clang -rewrite-objc的点滴_第2张图片

一般大家用这个例子探究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。

你可能感兴趣的:(关于clang -rewrite-objc的点滴)