swift項(xiàng)目調(diào)用OC庫 和OC項(xiàng)目 在swift文件里面全局調(diào)用OC庫

最近比較清閑,就把以前學(xué)習(xí)的過程記錄下吧,多少年后如果能在互聯(lián)網(wǎng)上找到自己的痕跡,想想還是一件蠻值得高興的事情。

正好這兩天加了一個(gè)swift學(xué)習(xí)群想繼續(xù)學(xué)習(xí)swift,發(fā)現(xiàn)好多swift初學(xué)者,在混編這塊還不是很清楚,當(dāng)初自己初學(xué)的時(shí)候也經(jīng)歷了這么一個(gè)痛苦的過程,所以把自己的痛苦過程也寫一下。當(dāng)然這也是第一次寫文章,想想有點(diǎn)小激動呢,各位看官老爺和大神們,請多多關(guān)照,不要罵的太慘...

1. 建立swift 項(xiàng)目

這里以pod集成為前提,怎樣全局使用一些第三方庫,以我們常用的AFN為前提

pod 'AFNetworking'

如果不指定版本號,pod 會自動幫助我們下載最新的版本

好了, 有了swift項(xiàng)目,如果我們需要使用OC的庫,就需要用到橋接文件。如果建立的是OC的項(xiàng)目,那么我們使用swift文件的時(shí)候Xcode會詢問我們是否創(chuàng)立橋接文件。當(dāng)然如果建立的是swift的項(xiàng)目,那么我們就需要去手動創(chuàng)建橋接文件。ProjiectName-Bridging-Header.h? 蘋果推薦的命名格式


這個(gè)地方就是我們需要添加庫的地方


不要忘了設(shè)置橋接文件的路徑


TARGETS->Build Setting -> Swift Compiler -General 設(shè)置路徑


這個(gè)時(shí)候你會發(fā)現(xiàn)在swift文件里面還是調(diào)用不了,還需要import 。那這就不是我們想要的效果了,接著往下走。


TARGETS->Build Phases -> Link Binary With Libraries? 進(jìn)入到這里,點(diǎn)擊+號

把我們需要的第三方庫添加進(jìn)去


TARGETS->Build Setting? 需要注意要選recursive

把路徑設(shè)置好,Build一下 ,大功告成

2.創(chuàng)建OC的項(xiàng)目

oc的項(xiàng)目我們使用第三方庫SVProgressHUD,使用pod集成后,我們創(chuàng)建一個(gè)Svp.swift文件,這個(gè)時(shí)候Xcode會詢問我們是否創(chuàng)建橋接文件


點(diǎn)擊Create Bridging Header 后系統(tǒng)會幫我們創(chuàng)建橋接文件

然后我們到TARGETS -> Build Setting -Swift Compiler -General 里面會發(fā)現(xiàn)橋接文件的路徑已經(jīng)寫上去了。但是如果我們選擇Don·t(那個(gè)符號不會打。。。)Create 而去手動創(chuàng)建的時(shí)候 我們就需要自己去把路徑給填寫上

然后同樣的來到Build Setting 下面把路徑設(shè)置下


這步跟swift項(xiàng)目引用OC庫的設(shè)置一樣

然后在橋接文件里面寫上我們需要的庫

#import "SVProgressHUD.h"

在創(chuàng)建的swift 文件里面 直接調(diào)用SVP的類? ,OK? 是可以的


# OC 調(diào)用Swift?

上面說的都是swift 怎么調(diào)用oc? ,這里說一下oc調(diào)用swift

一般OC里面我們使用pch文件去管理我們?nèi)こ绦枰玫降囊恍┡渲茫?h文件之類的。如果想做到OC去調(diào)用swift,那么只需要在pch文件導(dǎo)入 "ProjectName-Swift.h" 格式的文件就可以了。這個(gè)文件項(xiàng)目里面找不到的,但是它確實(shí)是存在的,我們可以點(diǎn)進(jìn)去看一下


它其實(shí)就是把swift文件的東西轉(zhuǎn)換成了OC

然后我們在ViewController 去調(diào)用swift文件里面的類

可以調(diào)用

那是不是所有的swift里面定義的類 OC都能去調(diào)用呢?我們在swift文件里面定義一個(gè)類


swift中定義的類如果沒有繼承,那它就是一個(gè)基類

定義了一個(gè)Da 的類,它是一個(gè)基類,然后我們再去OC的ViewController 里面去調(diào)用,發(fā)現(xiàn)調(diào)用不了。但是如果當(dāng)Da 這個(gè)類去繼承NSObject 或者UIViewcontroller 或者任意一個(gè)OC的類 ,我們都能去調(diào)用它。這里我們就知道了,OC中想要調(diào)用swift定義的類,那這個(gè)類要繼承于OC中定義的類。我們都知道,OC的代碼都能很好橋接到swift中,所以我們swift所使用的類都能繼承于OC,但是反過來,OC去繼承swift中定義的類都是不行的。

還有就是如果 Swift 類中的成員或者方法需要在 OC 中使用,要使用@objc修飾符。

當(dāng)然需要注意的東西還有很多,這里一時(shí)半會也說不完,以后有機(jī)會再慢慢寫吧



好吧,寫的都是一些簡單的東西, 其實(shí)這些東西大家可能都會,當(dāng)然這篇文章最主要還是寫給自己的,一個(gè)鞭策自己,讓自己養(yǎng)成一個(gè)良好習(xí)慣的開端吧。當(dāng)然如果有什么不對的地方,希望大家多多指出

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,293評論 4 61
  • ——看取蓮花凈,方知不染心。 雖然景致沒有驚艷之處,但是仍舊不失為一次體驗(yàn)豐富的旅行。 從最開始的尋找隊(duì)友到最后和...
    樹欲靜閱讀 3,487評論 0 1
  • 第二次,走進(jìn)多媒體教室,“沒有人唉,我們又是第一個(gè)到的”,小a提高了嗓門,“第三排看窗戶那個(gè)座位是我的,大家都...
    單戀一座城閱讀 323評論 0 2

友情鏈接更多精彩內(nèi)容