Cocoapods 0.36及以上版本引入了use_frameworks!
指令,这意味着在Swift中导入Objective-C pods时不需要桥接头文件。
请查看下面一个完整的示例,使用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 枚举类型,错误堆积可能会让你误以为存在比实际更大的问题。
(本答案来源)
供参考:我猜(你需要自己测试以确定)在 Podfile 中使用 use_frameworks! 指令只与针对 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项目集成
#import <Reachability/Reachability.h>
而不是#import "Reachability.h"
。 - Kyle Clegg更新: CocoaPods 0.36 稳定版本已经发布,正式支持 Swift。
CocoaPods 最新的 0.36 版本现在已经支持 Swift,虽然还处于 beta 阶段但它可以使用。
首先需要在终端中运行以下命令安装 CocoaPods beta(目前为 beta 2)。
sudo gem install cocoapods --pre
就是这样了。你可以像平时一样添加Swift库。
但是,如果你想通过CocoaPods将一个用Objective-C编写的库添加到Swift项目中,有一个问题。你需要在你的Podfile中添加一行use_frameworks!
。以下是一个示例。
use_frameworks!
platform :ios, '8.0'
pod 'MagicalRecord'
我也写了一篇关于此的博客文章
。sudo gem install cocoapods
来使用cocoapods 0.36.0版本,该版本支持集成Swift框架。当你使用一个由Swift编写的框架时,你应该在Podfile中明确地使用它:platform :ios, '8.0'
use_frameworks!
pod 'Alamofire'