Just a Computer Graphics Studio & My Life

先前有提到在Swift專案使用Objective C第三方套件,現在想要反過來該怎麼做呢?目前我主要還是以Objective C來開發iOS App,然而有些超級好用的套件是用最潮的程式語言Swift打造,為了方便開發起見,還是來學著怎麼「橋接 (Bridging)」吧!

在這裡我是使用Cocoapods來下載Charts這個超過15000人使用開源做範例。

target ‘HappyChartTest’ do
# Uncomment the next line if you’re using Swift or would like to use dynamic       frameworks
use_frameworks!
pod ‘Charts’
# Pods for HappyChartTest
end

接著在需要引用Charts的檔案中引用:

#import <Charts/Charts-Swift.h>

而非

#import <Charts/Charts.h>

我發現Charts-Swift-Swift.h似乎是動態產生在資料夾:

/Users/happyboy/Library/Developer/Xcode/DerivedData/SmartDevice-duaakabiiydkjiaquyzqjzfpylwb/Build/Products/Debug-iphoneos/Charts/Charts.framework/Headers

此外,還有這個檔:

Charts-umbrella.h

Objective C Swift Bridge

編譯時會出錯:

Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift.

原來還要在專案設定:

Objective C Swift Bridge2

在Xcode 8.3.3設定:

Build Settings > Swift Compiler – Version > Swift 3

如此就能隨心所欲地使用Swift第三方套件囉~

參考:[iOS][Cocoapod][Bridging] 在Objective-C專案裡面使用Swift的pod

廣告

發表留言

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

標籤雲

%d 位部落客按了讚: