問(wèn)題回顧
swift 與 oc 代碼管理方式的異同
在講清楚上面問(wèn)題之前我們先來(lái)看一下swift與oc代碼管理方式上面的不同之處:
- 1务甥、Swift的代碼默認(rèn)是使用module管理的牡辽,同樣這里我們也需要把我們的Swift代碼作為一個(gè)module暴露給我們的OC工程。
- 2敞临、OC代碼采用的是和C語(yǔ)言一樣的代碼管理方式?jīng)]有namespace的概念态辛。
在OC工程中制作Swift的module并將其暴露給OC工程
要實(shí)現(xiàn)該功能我們首先需要對(duì)Project中的target編譯相關(guān)的屬性進(jìn)行更改。具體步驟如下:
- 1挺尿、打開(kāi)工程的target進(jìn)入到Build settings 界面
選擇 all & combined 奏黑,隨后在檢索框輸入pack。
更改packaging模塊下的 Defines module 為YES 编矾。
并為Product Module Name 起一個(gè)名字熟史,默認(rèn)為工程的target名稱。 - 2窄俏、創(chuàng)建或?qū)雜wift類文件到工程中蹂匹,在oc中導(dǎo)入步驟一中module name 所生成的[modulename]-swift.h文件。
Tips:
如果Swift類想要被OC發(fā)現(xiàn)裆操,必須繼承自NSObject并且使用public標(biāo)記怒详,并且該類中想要被OC訪問(wèn)的方法也必須使用public標(biāo)記,
具體知識(shí)可以去看Swift的訪問(wèn)控制
原因:Swift的代碼對(duì)于OC來(lái)說(shuō)是作為一個(gè)module存在的踪区。
上文只是對(duì)自己在oc代碼中引入swift過(guò)程中所涉及的步驟的一個(gè)總結(jié)昆烁,更為全面的解釋請(qǐng)查看蘋(píng)果的官方文檔,Swift and Objective-C in the Same Project