怎麼讓一個項目裡swift與OC可以相容混合開發?,swiftoc
在蘋果推出了swift語言之後,很多人擔心OC很快會被取代,但是蘋果方面表示2年內不會摒棄OC。但現在也快了啊。有的Team Dev已經開始基於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語言每個版本還有微調的。