【发布时间】:2014-09-10 13:04:02
【问题描述】:
我制作了一个需要 sqlite3 框架的框架。如何为将 sqlite3 导入 Swift 文件的框架添加 Objective-C 桥接头?
我的项目已经有一个桥接头文件,但我的框架没有。
【问题讨论】:
标签: swift ios8 xcode6 bridging-header
我制作了一个需要 sqlite3 框架的框架。如何为将 sqlite3 导入 Swift 文件的框架添加 Objective-C 桥接头?
我的项目已经有一个桥接头文件,但我的框架没有。
【问题讨论】:
标签: swift ios8 xcode6 bridging-header
我在目标构建设置中发现了一个Objective-C Bridging Header 设置。默认情况下它是隐藏的。检查全部而不是基本。
在最近的 Xcode 版本中,此解决方案会给出错误 Using bridging headers with framework targets is unsupported。
我一直在使用的解决方法是在文件检查器中将 C-header public 导入到MyFramework.h 中,如下例所示:
#import <MyFramework/MyObjectiveC.h>
如何将 C-header 更改为 public
打开您的 C-header 并通过单击右上角的来查看检查器。要查看文件检查器,请单击右上角的文件图标。
【讨论】:
只需将您的 sqlite3 框架导入到您的 Objective-C 桥接文件中。然后你就可以自动在 Swift 中使用它了。
Apple 文档:
互操作性是 Swift 和 Objective-C 之间双向交互的能力,让您可以在另一种语言的文件中访问和使用以一种语言编写的代码片段。当您开始将 Swift 集成到您的应用程序开发工作流程中时,最好了解如何利用互操作性来重新定义、改进和增强您编写 Cocoa 应用程序的方式。 互操作性的一个重要方面是它允许您在编写 Swift 代码时使用 Objective-C API。导入 Objective-C 框架后,您可以从中实例化类并使用原生 Swift 语法与它们进行交互。
编辑:您甚至可以使用 import yourFramework
Apple 文档:
导入外部框架
您可以导入具有纯 Objective-C 的外部框架 代码库、纯 Swift 代码库或混合语言代码库。这 导入外部框架的过程是否相同 框架是用一种语言编写的或包含来自这两种语言的文件 语言。导入外部框架时,请确保 为您要导入的框架定义模块构建设置 是。
你可以将一个框架导入到不同的 Swift 文件中 使用以下语法定位目标:
SWIFT
import FrameworkName
您可以将框架导入到任何 Objective-C .m 文件中 使用以下语法的不同目标:
@import FrameworkName;
【讨论】:
error: using bridging headers with framework targets is unsupported