如何在 Swift 项目中使用 Objective-C CocoaPods

How to use Objective-C CocoaPods in a Swift Project

有没有办法在我的 Swift 项目中使用 swift 使用 Objective-C 编写的 CocoaPod?

我只做一个桥接头吗?如果是这样,我可以访问 Swift 中 CocoaPod 中的库定义的对象、类 和字段吗?

你只需要一个桥接头并导入你需要的东西。

您问题的基本答案是肯定的,您可以使用 objective-c 通过 CocoaPods 构建的代码。

更重要的问题是"How to use such libs?"
这个问题的答案取决于 Podfile:
中的 use_frameworks! 标志 假设您想要使用名称为 CoolObjectiveCLib 的 Objective-C pod。

如果您的 pod 文件使用 use_frameworks! 标志:

// Podfile
use_frameworks!
pod 'CoolObjectiveCLib'

那么你不需要添加任何桥 header 文件。
您需要的一切都是 Swift 源文件中的导入框架:

// MyClass.swift
import CoolObjectiveCLib

现在您可以使用库中提供的所有 类。

如果您的 pod 文件不使用 use_frameworks! 标志:

// Podfile
pod 'CoolObjectiveCLib'

然后您需要创建桥接 header 文件并在其中导入所有必要的 Objective-C headers:

// MyApp-Bridging-Header
#import "CoolObjectiveCLib.h"

现在您可以使用导入的 header 中定义的所有 类。

在 podFile 中使用标志 use_frameworks! 在依赖项的 Pod 文件夹结构中的 Xcode 中,在支持文件中添加 xxxxxxx-umbrella.h

在您的 {PROJECT_NAME}-Bridging-Header.h 中使用:

#import "xxxxxxx/xxxxxxx-umbrella.h"

对我有用。

并且不要忘记将 Bridging Header 文件名添加到 Target -> Build Settings -> Objective-C Bridging Header