clang -rewrite-objc的作用是把obicetive-c代碼轉(zhuǎn)寫成c/c++代碼倒得,一般用于查看obicetive-c源碼的秘密,尤其是關(guān)于Block的知識(shí)夭禽。
1. 看一段最簡(jiǎn)單的代碼霞掺。
然后打開終端,對(duì)main.m執(zhí)行命令:
命令執(zhí)行以后讹躯,目錄下多出一個(gè)main.cpp文件菩彬,打開一看,四萬多行代碼潮梯。其關(guān)鍵代碼如下:
一般大家用這個(gè)例子探究block的原理骗灶。
2. 指定SDK
oc代碼要轉(zhuǎn)成c代碼時(shí),真機(jī)和模擬器上差別還是挺大的秉馏。如果需要指定SDK耙旦,那么要結(jié)合xcrun命令,
真機(jī):
模擬器:
模擬器和真機(jī)都有默認(rèn)的SDK版本萝究,某個(gè)版本號(hào)的SDK
3. 指定framework
xcrun -sdk iphonesimulator10.2.1 clang -rewrite-objc –F? ? ? /Users/einstein-administrator/Desktop/einstein/einstein? main.m
以上都是簡(jiǎn)單示例免都,實(shí)際工作中可以同時(shí)指定多個(gè)源文件、多個(gè)framework帆竹。