在iOS中使用第三方類庫(kù)

轉(zhuǎn)載51CTO 網(wǎng)+ 第十二期沙龍:大話數(shù)據(jù)之美_如何用數(shù)據(jù)驅(qū)動(dòng)用戶體驗(yàn)

http://mobile.51cto.com/iphone-407056.htm


方法一:直接復(fù)制所有源文件到項(xiàng)目中

這種方法就是把第三方類庫(kù)的所有源文件復(fù)制到項(xiàng)目中,直接把所有.h和.m文件拖到XCode項(xiàng)目中即可。如果第三方類庫(kù)引用了一些系統(tǒng)自帶類庫(kù),那么在項(xiàng)目中還需要額外引用那些類庫(kù)。

如果當(dāng)前的項(xiàng)目啟用了ARC,而引用的第三方類庫(kù)未使用ARC,那還需要在項(xiàng)目信息的TargetsBuild Parses里找到第三方類庫(kù)的.m文件,并為它們加上-fno-objc-arc標(biāo)記。

而對(duì)于在未啟用ARC的項(xiàng)目用引用使用了ARC的第三方類庫(kù),則需要為第三方類庫(kù)的.m文件加上-fobjc-arc標(biāo)記。

另外,在源代碼中可以通過一個(gè)編譯器指令__has_feature(objc_arc)來檢測(cè)項(xiàng)目是否使用了ARC,具體見http://clang.llvm.org/docs/LanguageExtensions.html#langext-has-feature-has-extension。

方法二:引用.xcodeproj生成靜態(tài)鏈接庫(kù)并引用

首先,在XCode中把第三方類庫(kù)的.xcodeproj文件拖到當(dāng)前項(xiàng)目中;如果第三方類庫(kù)封裝了一些資源在.bundle文件里,那么.bundle文件需要和.xcodeproj一起拖到項(xiàng)目中。

然后,在項(xiàng)目的Targets – Summary – Linked Frameworks and Libraries或者在Targets – Build Phases – Link Binary With Libraries添加第三方類庫(kù)生成的靜態(tài)鏈接庫(kù)引用。

接著,還需要在Targets – Build Settings – Search PathsUser Header Search Paths參數(shù)中加入第三方類庫(kù)的頭文件路徑,可以是絕對(duì)路徑如:/Users/libpath,也可以是相對(duì)路徑(相對(duì)于當(dāng)前項(xiàng)目文件夾)如:../**。

最后,有些靜態(tài)鏈接庫(kù)引用進(jìn)來可能還需要增加一些標(biāo)記,在Targets – Build Settings – LinkingOther Linker Flags參數(shù)中增加:-Objc,–all_load這一類標(biāo)記。

通過以上幾步,一般都可以成功編譯。

當(dāng)然還有一些例外的情況:

當(dāng)前項(xiàng)目和第三方類庫(kù)同時(shí)使用了另外的一些第三方類庫(kù),這個(gè)時(shí)候還需要額外做一些處理才能成功編譯:在引用的第三方類庫(kù)的.xcodeproj項(xiàng)目 – Targets – Build Phases中的Compile SourcesCopy Headers把重復(fù)的.m和.h文件移除掉。

第三方類庫(kù)引用的一些系統(tǒng)自帶類庫(kù),如果項(xiàng)目中沒有引用,也可能會(huì)引起編譯錯(cuò)誤,這時(shí)還需要在項(xiàng)目中引用第三方類庫(kù)引用的一些系統(tǒng)自帶類庫(kù)。比如:第三方類庫(kù)引用了QuartzCore.framework,而項(xiàng)目中未引用QuartzCore.framework則可能引起編譯錯(cuò)誤,就需要在項(xiàng)目中也引用QuartzCore.framework。

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

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,361評(píng)論 4 61
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一種新的協(xié)議。它實(shí)...
    香橙柚子閱讀 24,760評(píng)論 8 183
  • 背景:主機(jī)統(tǒng)計(jì)按每5分鐘create一個(gè)進(jìn)程進(jìn)行統(tǒng)計(jì)最近24小時(shí)的日志,統(tǒng)計(jì)host數(shù)據(jù),然后存在到host_al...
    imsilence閱讀 980評(píng)論 0 0
  • 小時(shí)候數(shù)學(xué)成績(jī)一直不錯(cuò),記得有次數(shù)學(xué)沒考好只有70多分,當(dāng)時(shí)眼眶就紅了?;氐郊抑猩w上被子,嗚嗚的……哭了起來。要堅(jiān)...
    黑夜思考者閱讀 690評(píng)論 0 6
  • 詩(shī)――丁曼茨 因?yàn)槲覜]有忘記你 當(dāng)黑夜降臨時(shí) 我像一棵樹站立著 我為了你 我要執(zhí)著望著你窗戶 害怕你孤獨(dú) 2017...
    鮑川克閱讀 154評(píng)論 2 0

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