OC項目中使用Swift

簡介

由于現(xiàn)在用到swift,做了一些基礎(chǔ)性的研究,由于原先的工程都是使用OC編寫的,不可能一下全部轉(zhuǎn)換成Swift,所以采用OC與Swift混編的方式是最好的選擇。這篇文章只是一個簡單的介紹,并沒有太高深的知識。

開始

我在已經(jīng)的創(chuàng)建OC的工程,當(dāng)然你可以使用新創(chuàng)建的OC工程,如果我們想要在OC工程中使用Swift的代碼,Swift的代碼默認(rèn)是使用module管理的,同樣這里我們也需要把我們的Swift代碼作為一個module暴露給我們的OC工程,修改下面的配置:


屏幕快照 2017-03-24 下午1.54.12.png

上面的修改了一個配置項,有一個Product Module Name在后面會使用。

創(chuàng)建一個swift文件


上圖中的Subclass of一定要設(shè)置為NSObject或其子類,否則OC工程將不會找到該類。

點擊確認(rèn)后會選擇保存路徑,點擊Create,出現(xiàn)如下界面:


這個界面是詢問是否創(chuàng)建橋接的頭文件,這個文件在Swift調(diào)用OC代碼的時候比較管用,但是在OC中調(diào)用Swift的時候我發(fā)現(xiàn)沒有什么卵用。

選擇Don’t Create按鈕。
在Test.swift中添加如下的代碼(解釋都在注釋里面了):

屏幕快照 2017-03-24 下午2.20.26.png

我們在我們想要調(diào)用Swift類的方法里面引入頭文件:”Product Module Name-Swift.h”,其中Product Module Name替換成在上面配置項中顯示的內(nèi)容,例如:


屏幕快照 2017-03-24 下午2.21.09.png
屏幕快照 2017-03-24 下午2.28.25.png

這樣我們就能夠在OC中使用Swift的代碼了,最后還要說明一點:”Product Module Name-Swift.h”(例子中的是ProjectComtus-Swift.h),是由編譯器自動生成的,如果import后沒有提示,編譯一下。并且只有在工程中包含至少一個Swift文件的時候,才會自動生成這個文件,所以如果工程中如果沒有Swift文件的時候,就算在配置中設(shè)置對了,import該文件也會報錯。

本文版權(quán)歸作者所有:http://blog.csdn.net/mengxiangyue
獨立博客:http://mengxiangyue.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 本文版權(quán)歸作者所有,如需轉(zhuǎn)載請聯(lián)系孟祥月CSDN博客:http://blog.csdn.net/mengxiang...
    匠金科技閱讀 668評論 0 0
  • 最近公司的項目開始計劃使用Swift,由于原先的工程都是使用OC編寫的,不可能一下全部轉(zhuǎn)換成Swift,所以采用O...
    hope7th閱讀 906評論 0 0
  • 最近公司的項目開始計劃使用Swift,由于原先的工程都是使用OC編寫的,不可能一下全部轉(zhuǎn)換成swift,所以采用O...
    樊二哈閱讀 569評論 0 0
  • 問題回顧 在創(chuàng)建iOS project時,一般情況下我們會根據(jù)項目開發(fā)時想要使用的開發(fā)語言來決定創(chuàng)建Swift p...
    TyroneTang閱讀 534評論 0 2
  • 原文地址幾天前,我開始新的App的開發(fā)了。終于有機(jī)會把swift用在實戰(zhàn)中了,也學(xué)到了之前純學(xué)語法時沒有機(jī)會獲得的...
    代碼干貨閱讀 1,188評論 1 2