出現(xiàn)錯誤:
這是由于使用了第三方 framework 或者自己的代碼是以 framework 的形式引用的适篙。而且直接在 Swift 文件中 import 了 OC 代碼的framework。
解決辦法:
- 把 OC 的 framewrok 的引用放到橋接頭文件中
#import <HelloWorld/HelloWorld.h>
- 刪除 Swift 文件中對 OC framework 的引用
- 簡單說就是 Swift 不論是引用 OC 代碼還是 OC 的 Framework,都必須通過橋接頭文件
另外值得一提的是糠聪,如果自己的 OC 代碼是以 Framework 的形式引入進來土思,并且這個 Framework 的Build Active Architecture Only 不論是 Debug 還是 Release 都選擇的是 NO,也就是編譯armv7,armv7s,arm64 所有平臺的指令娱俺,在 Swift 中直接引用OC Framework 而不通過橋接頭文件是可以通過編譯的颖变。
如果該 OC Framework 的Build Active Architecture Only 在 Debug模式設(shè)置為 YES,Release 設(shè)置為 NO陪蜻。這也是我們通常針對 Framework 的編譯設(shè)置,平時只編譯當前機器的指令贱鼻,發(fā)布時編譯所有平臺的指令宴卖,這樣平時調(diào)試的時候編譯速度會快一點。這種設(shè)置在模擬器可以編譯運行邻悬,但是真機不能通過症昏。
以上兩個表現(xiàn),這也是我找了半天錯誤的原因父丰。