Objective C桥接框架的标头

时间:2014-07-19 13:55:45

标签: swift ios8 xcode6

我已经制作了一个需要sqlite3框架的框架。如何为我的框架添加Objective C Bridging Header,将sqlite3导入我的Swift文件?

我的项目已经有一个桥接头文件,但不适用于我的框架。

2 个答案:

答案 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标题,然后单击右上角查看检查器。要查看文件检查器,请单击右上角的文件图标。

enter image description here

答案 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;