1. 程式人生 > >OC 與 swift 混編雜記

OC 與 swift 混編雜記

ren use rom not 編譯 lfs 內嵌 uic chan

今天使用在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 混編雜記