如何将用 Swift 编写的 Cocoa Touch 框架导入 .pch 文件?

Posted

技术标签:

【中文标题】如何将用 Swift 编写的 Cocoa Touch 框架导入 .pch 文件?【英文标题】:How to import a Cocoa Touch Framework written in Swift to a .pch file? 【发布时间】:2015-04-15 07:07:06 【问题描述】:

我创建了一个 Swift 框架,我想将它导入到我在 Swift 项目中创建的每个类中。我不想在任何地方手动输入import 语句。我该怎么做?

在 Objective-C 中,这与在预编译的头文件(.pch 文件)中放置一个 #import 语句相同。

我尝试了什么

使用 Cocoa Touch Framework 模板创建一个新的 Xcode 项目,用 Swift 编写我的所有代码。 我在框架中的所有扩展和方法都有public 关键字。 将框架的 .xcodeproj 添加到我的应用的 Xcode 项目中。 在目标依赖项中添加.framework。 在我的应用项目中创建一个 .pch 文件(也是用 Swift 编写的)。 在 .pch 文件中写入 <FrameworkName/FrameworkName.h>。这并没有解决问题,而且有点没有意义,因为我并没有真正在框架项目内的FrameworkName.h 中导入任何内容。

【问题讨论】:

它是纯 Swift 项目还是混合 ObjC-Swift? 框架是 Swift-only,应用也是 Swift-only。 据我所知,目前还没有解决办法。您不能在所有 Swift 类中自动导入框架,就像在 ObjC 中使用 PCH 文件一样。我知道的唯一解决方案是在桥文件中导入框架,然后在任何地方都可以访问,但在纯 Swift 项目中,您没有此解决方案可用。 【参考方案1】:

您可以手动添加 .pch 文件,然后可以在 .pch 文件中导入常用文件。欲了解更多信息,请参阅下面的链接

Add new .pch file

看这张图片

【讨论】:

我从我的项目中创建了一个 .pch,但是如何从中导入我的 Swift 框架? @Matt 请查看对您有帮助的给定链接,因为每个步骤都在那里定义。 恐怕你误会了。我不只是询问如何创建一个 .pch 文件来预导入同一项目中的所有文件。我在询问如何导入我在纯 Swift 中构建的 Cocoa Touch Framework,以及如何在 .pch 中导入它,这样我就不必在每个文件中都导入它。请注意,如果一个框架是使用纯 Swift 构建的,那么整个框架就没有一个 .h 文件。 @Matt 你可以#import UIKit 看看我编辑的答案

以上是关于如何将用 Swift 编写的 Cocoa Touch 框架导入 .pch 文件?的主要内容,如果未能解决你的问题,请参考以下文章

Cocoa/Swift:遍历路径中文件夹的名称

保护文档架构中的模型(Cocoa/Swift)

如何使用 Cocoa (Mac) 在 Swift 中创建 PDF

使用 Cocoa 在 Swift 4.0 中以编程方式创建复选框的标准方法是啥?

Cocoa:如何在 Swift 中获取广播 IP 地址?

如何使用 Storyboards/Cocoa 在 Swift 3.x 中引用视图的窗口