ios - 如何将 Cocoapods 与 Swift 项目集成?

标签 ios objective-c xcode swift cocoapods

正如 Apple 推出的 Swift ,他们的新编程语言,我想知道如何将它与现有的 Objective-C 库集成,这些库可通过 CocoaPods 获得。 ?

最佳答案

Cocoapods 0.36 及更高版本引入了 use_frameworks! 指令,这意味着在 Swift 中导入 Objective-C pod 不需要桥接头。

请在下面找到使用 MBProgressHUDAlamofire 的完整示例:

1。播客文件

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

2。删除

从您的桥接头中删除#imports,如果您不需要,甚至删除桥接头文件。如果您选择后一种可能性,请不要忘记在您的 Xcode 项目配置中删除路径(到此已删除的桥接头文件)。

3。添加导入

在需要这些类的每个 Swift 文件的顶部添加 import MBProgressHUD 和/或 import Alamofire

4。必要时修复枚举

您现在正在使用真正的框架,所以您的枚举已经在飞行中!你可能有一条 Swift 行,它可以像这样使用桥接头:

progressHUD.mode = MBProgressHUDModeIndeterminate

现在必须变成这样:

progressHUD.mode = MBProgressHUDMode.Indeterminate

没什么大不了的,但一堆错误可能会让你误入歧途,如果你使用大量的 Objective-C 枚举,你会遇到更大的问题。

( Source of this answer )

供您引用:我想(您必须自己测试才能确定)use_frameworks! Podfile 中的指令仅与面向 iOS >= 8 的 Xcode 项目兼容。

关于ios - 如何将 Cocoapods 与 Swift 项目集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24122914/

相关文章:

ios - UITableViewCell 背景颜色仅适用于预设颜色方法

iPhone:为什么核心数据中的批量插入这么慢?

iphone - 如何将 UITableViewController 中选定行的数量传递/发送到另一个类?

xcode - Swift - 如果按下 2 个按钮,如何执行一个操作?

IOS UserDefault 无法存储在本地

android - 如何通过特定 IP 路由 API 请求?

ios - 从互联网获取表数据时,有人可以用UItableview来解释MVC吗?

ios - 为什么在要求我的 TableView 滚动到顶部时我会收到 NSRangeException?

iphone - UITableView - 删除行后选择最近的行

xcode - 我应该使用 View 约束还是最小窗口大小?