[新手小記]記錄Objective-C調用Swift第三方庫

使用場景

找到一個github上的一個CircleMenu的菜單,覺得挺好想用用,發現是Swift寫的,項目本身是Objective-C的,所以想試試能不能直接用OC去調用Swift。

步驟

1 根據github的說明,直接

target :test do
    pod 'CircleMenu'
end

發現報錯了,提示引入的這個CircleMenu是用Swift寫的,只能用frameworks的方式集成

-> Using CircleMenu (1.0.7)
  - Running pre install hooks
[!] Pods written in Swift can only be integrated as frameworks; add `use_frameworks!` to your Podfile or target to opt into using it. The Swift Pod being used is: CircleMenu

2 根據Podfile的報錯,加入use_frameworks!

target :test do
    pod 'CircleMenu'
use_frameworks!
end

提示安裝完成,(≧▽≦)/

Pod installation complete!

3 直接進入代碼,照著Swift的列子寫一下

@interface ViewController () <CircleMenuDelegate>

直接報錯,找不到CircleMenuDelegate這個協議。

4 需要引入頭文件,格式為 庫名-swift.h

#import "CircleMenu-swift.h"

進入這個頭文件查看,應該是系統自動幫忙生成的。頭文件會將Swift方法全部映射成OC的方法。

// Generated by Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31)

問題

  • 之前OC引入的Pods在使用use_frameworks!后,無法找到頭文件

cocoapods 1.0以下版本,可以使用link_with只對指定的庫使用use_frameworks!

target 'Frameworks' do
    use_frameworks!
    link_with 'xxxx' #xxxx為項目target
    
    pod 'CircleMenu'
end
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 發現 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 12,251評論 4 61
  • 轉載自:https://github.com/Tim9Liu9/TimLiu-iOS[https://github...
    香橙柚子閱讀 8,749評論 0 36
  • 每個人的目標都可能會不同,但萬變不離其中的是他們都想改變現狀或變得比現在好且讓自己的生活變得更好,可能每個階段目標...
    oscar雙頭木閱讀 500評論 1 0
  • 你有沒有遇到過下邊的場景: 太在意同事怎么想的,所以剛到一個新公司,不敢表達自己的需求,比如有急事到下班的時間就想...
    里唯的屋閱讀 467評論 0 2
  • 我想仗劍走天涯,肆意揮灑。人生那么長,怎么能被索然無味的生活羈絆住腳步,想過一種絢爛的生活
    慧君_d22a閱讀 295評論 1 1