[英]How to integrate Cocoapods with a Swift project?
Cocoapods 0.36 及以上版本引入了use_frameworks!
這意味着在 Swift 中導入 Objective-C pod 不需要橋接頭。
請在下面找到使用MBProgressHUD和Alamofire的完整示例:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.3'
use_frameworks!
pod 'Alamofire', '>= 1.2.2' # Swift pod
pod 'MBProgressHUD', '>= 0.9.1' # Objective-C pod
從橋接頭中刪除#imports,如果不需要,甚至可以刪除橋接頭文件。 如果您選擇后一種可能性,請不要忘記刪除 Xcode 項目配置中的路徑(到這個已刪除的橋接頭文件)。
在需要這些類的每個 Swift 文件的頂部添加import MBProgressHUD
和/或import Alamofire
。
您現在正在使用真正的框架,因此您的枚舉已在飛行中移動! 您可能有一行 Swift 可以很好地處理橋接頭,如下所示:
progressHUD.mode = MBProgressHUDModeIndeterminate
現在必須變成這樣:
progressHUD.mode = MBProgressHUDMode.Indeterminate
沒什么大不了的,但是一堆錯誤可能會讓你誤入歧途,如果你使用大量的 Objective-C 枚舉,你會遇到比你更大的問題。
( 這個答案的來源)
供您參考:我猜(您必須自己測試以確保) use_frameworks! Podfile 中的指令僅與針對 iOS >= 8 的 Xcode 項目兼容。
該過程似乎類似於在使用 Swift 與 Cocoa 和 Objective-C文檔的混合和匹配部分中描述的過程。
pod install
。Example-Bridging-Header.h
,並將其添加到項目中。Objective-C Bridging Header
: 現在你可以在你的 Swift 文件中使用你的庫,在這種情況下,MKUnits:
let kilograms = NSNumber.mass_kilogram(2)()
let pounds = NSNumber.mass_pound(10)()
let result = kilograms.add(pounds)
println(result)
更多信息: 將 Cocoapods 與 Swift 項目集成
更新:CocoaPods 0.36 穩定版已經發布。 它正式支持 Swift。
CocoaPods 現在在最新的 0.36 版本中支持 Swift。 它仍處於測試階段,但它可以工作。
首先,您需要通過在終端中運行它來安裝 CocoaPods beta(目前是 beta 2)。
sudo gem install cocoapods --pre
差不多就是這樣。 您可以像往常一樣添加 Swift 庫。
但是,如果您想通過 CocoaPods 將用 Objective-C 編寫的庫添加到 Swift 項目中,則有一個問題。 您需要添加一行use_frameworks!
到您的 Podfile。 這是一個例子。
use_frameworks!
platform :ios, '8.0'
pod 'MagicalRecord'
如果您在 bridging-header.h 中遇到文件未找到錯誤,您可能需要確保您的 Pods 庫已鏈接到您的構建方案中。
CocoaPods 故障排除部分描述了如何在此處的第 4 項下執行此操作
現在您可以通過運行支持集成 swift 框架的sudo gem install cocoapods
來使用 cocoapods 0.36.0 版本。 當你使用 swift 編寫的框架時,你應該在 Podfile 中顯式使用它:
platform :ios, '8.0'
use_frameworks!
pod 'Alamofire'
就我而言,我發現我沒有將 pod 添加到主要目標,而是僅添加到 Podfile 中的 Test 和 TestUI 目標,如here所述。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.