OC 與 swift 混編雜記
今天使用在swift項目上使用了oc項目的一部分源代碼發現了以下問題:
1. oc 無法繼承swift類
2. oc 無法使用 純swift類
3. 帶有閉包的函數無法被oc類調用
以上問題使得 oc 使用swift源碼變得困難重重
昨天打包的時候發現這個問題:
“Undefined symbols for architecture arm64:
"__TFFC11duiDuiAlive21DataCenterMerchantsVCgP33_2F08BF04E285995BDA3E31B94BCF039714collectionViewCSo16UICollectionViewauL_4selfS0_", referenced from:
__TTSf4g___TFFFFC11duiDuiAlive21DataCenterMerchantsVCgP33_2F08BF04E285995BDA3E31B94BCF039714collectionViewCSo16UICollectionViewU_FT_S1_L_23configureCollectionViewFS1_T_L_11setDelegatefT_T_ in DataCenterMerchantsVC.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
”
這個看起來像是編譯器bug,因為我在 build phases中刪掉該文件再添加後 又可以了。 但是最後還是有一個文件仍然出現錯誤,剛開始是四個文件,經過上述步驟只有一個。後來我仔細檢查錯誤提示 ,把相關的函數改掉就好了。本來使用的是內嵌函數,把他展開就好了。也不知道為什麽。
OC 與 swift 混編雜記