在蘋果推出了swift語言之后,很多人擔心OC很快會被取代,但是蘋果方面表示2年內不會摒棄OC。但現在也快了啊。有的開發團隊已經開始基于swift開發,但是有很多舊的框架還沒來得及用swift寫出來,并且某些swift的功能你還不會寫,想用OC寫。因此在swift開發的程序中時不時會用到OC的類,怎么讓兩門語言在一個程序里無縫銜接? 其實很方便
如果你不是在董鉑然博客園看到本文請 點擊查看原文
如圖這是一個新建的swift項目,里面直接拖入了一個SVPRogressHUD框架
因為swift語言里,同一個項目內的文件基本會放在同一個命名空間下,所以用項目中某類的方法都是不用導入頭文件的,這的確很方便。
但是拖入了OC框架后想用OC框架里的方法時,你導入框架的頭文件到ViewController.swift 會報錯的,這就不截圖了。
解決方案是 新建一個Header File文件
如圖建好之后,在這個文件里導入框架。
接下來,到項目部署里引用此文件
模仿圖中的路徑,就是這個項目的文件夾下的Head File文件
cmd+B 變異一下 如果success就說明到這你都沒有寫錯。
然后在ViewController.swift文件里,用swift的格式來調用這個方法
比如寫一個點擊方法(切記不用導入頭文件!只需要直接寫這個方法)
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { SVProgressHUD.show() }
運行后點擊一下
到此就完成了OC與swift之間的橋接。HUD指示器框架已經和swift項目無縫銜接。 后續如果還有別的OC類 那就把頭文件導入到這個 Demo-Bridge.h文件里,就能在項目的其他地方用swift的語法(也就是點語法)調用了。 這里要切記。1.不要用OC語法調用。 2.不要在swift后綴的文件里導入任何頭文件。
如果你不是在董鉑然博客園看到本文請 點擊查看原文
當然這篇文章用到的環境是最新的XCode6.3 beta2. 模擬器和SDK都是iOS8.3。 如果低版本的Xcode在橋接時遇到種種問題,請升級或下載到最新版本開發,因為swift語言每個版本還有微調的。
新聞熱點
疑難解答