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