我已经制作了一个需要sqlite3框架的框架。如何为我的框架添加Objective C Bridging Header,将sqlite3导入我的Swift文件?
我的项目已经有一个桥接头文件,但不适用于我的框架。
答案 0 :(得分:29)
我在目标Build Settings中找到了 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标题,然后单击右上角查看检查器。要查看文件检查器,请单击右上角的文件图标。
答案 1 :(得分:3)
只需在您的objective-c桥接文件中导入sqlite3框架即可。然后,您可以自动在Swift中使用它。
Apple文档:
互操作性是指在任一方向上Swift和Objective-C之间进行接口的能力,允许您访问和使用以一种语言编写的另一种语言的文件。当您开始将Swift集成到您的应用程序开发工作流程中时,了解如何利用互操作性来重新定义,改进和增强编写Cocoa应用程序的方式是一个好主意。 互操作性的一个重要方面是它允许您在编写Swift代码时使用Objective-C API。导入Objective-C框架后,您可以从中实例化类并使用本机Swift语法与它们进行交互。
编辑:您甚至可以将您的swift文件中的Objective-C框架或Swift框架或混合语言框架导入到您的sw import yourFramework
< / p>
Apple文档:
导入外部框架
您可以导入具有纯Objective-C的外部框架 代码库,纯Swift代码库或混合语言代码库。该 导入外部框架的过程是否相同 框架用单一语言编写或包含两者的文件 语言。导入外部框架时,请确保 定义要导入的框架的模块构建设置 是的。
您可以将框架导入到不同的任何Swift文件中 使用以下语法编写目标:
<强> SWIFT 强>
import FrameworkName
您可以将框架导入到a中的任何Objective-C .m文件中 使用以下语法的不同目标:
@import FrameworkName;