目前需求##
作為一名iOS開發(fā)者,開發(fā)app的時候常常需要使用github上的第三方庫等,但由于歷史原因,很多的優(yōu)秀資源目前還都是用Objective-C編寫的。本文的目的是幫助swift項目無縫享用OC的類庫。
使用CocoaPods##
對CocoPods陌生的請點(diǎn)擊這里。
例如,我們想使用MJRefresh
類庫,在項目的Podfile中加入一行:pod 'MJRefresh'
然后執(zhí)行 pod install
命令,等安裝完成后,打開項目的 xcworkspace 文件。
通過The Bridging Header進(jìn)行橋接##
蘋果官方推薦通過header file
文件來讓Swift項目使用OC。
在Project Navigator中右鍵點(diǎn)擊你的項目名,然后選擇"new file", 選擇source選項中的
Header File
,然后定義一個名稱。我在此處是YSH-Bridging-Header.h
。(盡量采用官方推薦的命名方式,即 項目名-Briding-Header)生成之后文件中有默認(rèn)的模板內(nèi)容,我們要做的是在#endif上面導(dǎo)入OC庫對應(yīng)的.h文件(.h文件可以在Pods項目中的Pods文件夾下查看,這個.h文件中包含了該第三方庫中的其他頭文件)。
//
// YSH-Bridging-Header.h
// Swift Project 10-PULL TO REFRESH TABLE VIEW
//
// Created by 楊上海 on 2017/4/12.
// Copyright ? 2017年 yangshanghai. All rights reserved.
//
#ifndef YSH_Bridging_Header_h
#define YSH_Bridging_Header_h
#import "MJRefresh.h"
#endif /* YSH_Bridging_Header_h */
Building Settings選項卡##
選中項目名,選擇Building Settings
選項卡(注意選中左邊的 All),直接搜索關(guān)鍵詞 bridging
,在 Objective-C Bridging Header 右邊對應(yīng)的方框中雙擊,復(fù)制之前的 YSH-Bridging-Header.h
名稱并粘貼,如圖:
不需要再在項目中導(dǎo)入頭文件,直接在自己的swift項目里試試,看看是不是已經(jīng)可以調(diào)用第三方OC庫的函數(shù)了?
如果成功的話,恭喜你,可以繼續(xù)享用Swift了。
參考鏈接
Apple's Documentation
Using Objective-C CocoaPods libraries with Swift