眾所周知,在oc裡是相容c和c++的,那麼oc物件是如何實現的呢,實際上也是用c和c++程式碼封裝好的
平常程式碼的實現流程如下: oc -> c或c++ -> 組合語言 -> 機器語言
驗證過程
1.在main函式裡建立一個NSObject類
2.然後開啟終端
執行 clang -rewrite-objc main.m -o main.cpp 命令 clang 是xcdoe自帶的外掛 -rewrite-objc 是重寫的意思 main.m 是檔案的名字 -0 輸出 main.cpp 輸出檔案的名字 cpp 是指 c plus plus 就是c++的意思 為什麼是c++? 因為生成的可能是c和c++混編的 所以c++為妥
然後會有這樣子的提示出來(64個警告)
然後我們在專案檔案裡可以看到新編譯出來的檔案
3.用xcode開啟 然後我們就可以找到main函式裡將obj轉成c和oc的程式碼片段了
當然了 我們還可以給程式碼瘦身一下 只生成在iPhone上的程式碼
命令如下:
xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m -o main-arm64.cpp
xcrun xcoderun -sdk 指定執行的平臺
-arch 架構
4.然後我們開啟64.cpp檔案,搜尋 nsobject_impl
IMPL Implementation 就是實現的意思
struct 結構體的關鍵詞