我正在尝试掌握 Swift 的诀窍,并且我只是从对我编写的一些应用程序进行简单的移植开始。
这些应用程序有一些共同的核心逻辑,为此我在 Xcode 中使用了一个框架目标来与这些项目共享。我在想出 Swift 中的等价物时遇到了麻烦。
我知道 Swift 会编译成模块,这似乎是我想要的。我想要一个可以与我的其他项目共享的 Swift 模块。不过,我似乎遇到的主要问题是,如果它还使用从 Beta 4 开始的桥接 header ,那么你就不能拥有带有 Swift 的框架,我需要调用一些没有 Swift 的 API(比如 Security.framework)绑定(bind)。编译器 (Beta 5) 失败并显示此错误消息:
<unknown>:0: error: using bridging headers with framework targets is unsupported
我该怎么做才能创建一个也需要使用桥接头文件的可重用 Swift 模块?或者,我如何在没有桥接头的情况下使用 Security.framework 中的东西? (或者,除了框架之外,我应该使用其他东西来创建没有任何这些问题的模块吗?)
最佳答案
要在同一框架目标内将 Objective-C 代码导入 swift,只需导入伞形头文件中的每个 Objective-C 头文件即可。苹果官方文档已经提到:https://developer.apple.com/library/ios/documentation/swift/conceptual/buildingcocoaapps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_81请参阅从同一框架目标中导入代码
部分。
cocoa 内置框架已在 swift 中作为模块迁移。要使用 Objective-C 的 Security.framework
,您只需添加一行:
import Security
在 swift 文件的头部。
关于swift - 使用桥接头文件的 Swift 构建可重用的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25150983/