Objective C iOS 项目 + Swift 2 WatchOS 项目和 Cocoapods

Posted

技术标签:

【中文标题】Objective C iOS 项目 + Swift 2 WatchOS 项目和 Cocoapods【英文标题】:Objective C iOS project + Swift 2 WatchOS project with Cocoapods 【发布时间】:2016-05-03 11:06:00 【问题描述】:

我有一个 Objective-C 项目,我最近在 Swift 2 中添加了一个 WatchOS 2 项目。

从 WatchOS 项目,我正在通过桥接头访问一个 Objective-C 类(让我们说Equations.m)。然而,这个Equations.m 文件导入了另一个库(具体来说是HHUnitConverter),并且这个HHUnitConverter 是使用Cocoapods 添加到项目中的。

当我构建 WatchOS 项目时,我收到此错误:“HHUnitConverter.h”未找到。

当 Obj C 类引用另一个使用 cocoapods 添加的 Obj-C 类时,是否可以通过 Swift 类中的桥接头使用 Objective-C 类?我应该更改什么以使该文件可供编译器使用?

我一直在努力让这个工作好几个小时,感谢任何建议。谢谢!

【问题讨论】:

HHUnitConverter 也应该从您的 Podfile 添加到您的 WatchOS 目标中。你能把你的 podfile 贴在这里吗? HHUnitConverter.h 如果它在 Objective C 中,也应该添加到桥接头中 如果我尝试将 HHUnitConverter.h 导入其中,桥接头也会出错。它说找不到文件。 【参考方案1】:

选择您的 watchOS 目标并转到构建设置。将“Objective-C Bridging Header”文件设置为与 ios 目标相同的文件。

【讨论】:

以上是关于Objective C iOS 项目 + Swift 2 WatchOS 项目和 Cocoapods的主要内容,如果未能解决你的问题,请参考以下文章

Swift vs. Objective-C:未来看好 Swift 的十个理由

Objective C iOS 项目 + Swift 2 WatchOS 项目和 Cocoapods

iOS - 在同一个项目中使用 Swift 和 Objective c?

IOS项目目标中的多个Objective C桥接头

在 iOS Objective C 中添加 Cloudinary Pod

通过在 iOS 中创建桥文件在 Objective-C 项目中使用 Swift 代码