swift之OC與Swift混編

來源:互聯網
上載者:User

標籤:代碼   參考   標頭檔   art   header   命名空間   .net   工程   產生   

1、在Swift工程添加OC代碼

      在swift語言裡,同一個項目內的檔案基本會放在同一個命名空間裡,所以沒有.h檔案。如果想在swift工程中添加OC代碼,需要解決怎麼引用OC代碼的標頭檔問題。具體的解決辦法就是:建立一個Header File檔案裡。

如所示,在建立的.h檔案裡面,添加OC代碼的標頭檔

然後需要在項目部署裡面配置該引用檔案

 

這樣就可以在swift檔案裡面按照swift文法來調用OC代碼了

2、在OC工程中加入Swift代碼

oc裡面都有標頭檔,但是swift沒有標頭檔,因此我們需要產生一個標頭檔。當你在OC工程裡面建立swift檔案話,工程會給你自動建立一個比較特殊的標頭檔。如所示,Xcode會根據module Name,產生一個名字為moduleName-Swift.h的檔案。

在需要調swift代碼的.m檔案裡面,加入“#import Modulename-Swift.h”,如所示。你在整個工程中是找不到這個檔案的,但可以使用CMD+滑鼠點擊可看到這個標頭檔中的內容。

使用CMD+滑鼠點擊看到這個標頭檔中的內容,具體內容如下:

特別要注意的是:用swift寫的類,如果不繼承自NSObject或者NSObject的衍生類別,哪麼編譯後將不會產生對應的轉換類,從而使得OC中找不到相應的聲明。具體解釋可以參考:http://blog.csdn.net/zhzmaren/article/details/53283835。具體寫法如下所示:

總之,工程中如果Swift要使用OC,則需要把使用OC類的標頭檔,全寫在SayOO1-Bridging-Header.h檔案裡面。同樣,如果OC中使用Swift類,需要在OC代碼裡面匯入SayOO1-swift.h。

 

swift之OC與Swift混編

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.