无法快速创建桥接头

Posted

技术标签:

【中文标题】无法快速创建桥接头【英文标题】:Unable to create Bridging header in swift 【发布时间】:2015-04-16 06:47:48 【问题描述】:

我计划将目标 C 中的两个文件 [PendulumView.h 和 PendulumView.m] 添加到 swift。但是如果我尝试创建桥接头,我将无法创建桥接头。 Xcode 不会问我“你想创建桥接头吗?”。那个对话框也没有出现。如果我继续并导入头文件,则会收到错误消息。

(Command + N) -> ios -> 源代码 -> Objective-C/头文件。没有创建桥接头。自动创建 .h 或 .m 文件。

pendulum_header.h 文件

#ifndef pendul_test_pendul_Header_h
#define pendul_test_pendul_Header_h

#import "PendulumView.h"

#endif

ViewController 文件

override func viewDidLoad() 
    super.viewDidLoad()

    var pendul_object = PendulumView() //Error Receiving. Unresolved Identifier PendulumView


截图如下:

【问题讨论】:

Reference types defined in Objective C Library from Swift Application的可能重复 同样的问题,那个对话框没有出现。我尝试了另一种方法,同样的问题发生了。桥接头文件未创建。 阅读我的答案底部。 现在还不清楚。你能指导我吗?根据我的输出。 您是否按照我的答案中的步骤,一直到整个答案?哪部分不清楚? 【参考方案1】:

错误完全是我的一面。

我做了什么?

    打开新项目 -> 已导入该 .h 和 .m 文件。 右键->新建文件->“iOS->源码->Objective-C.m” .m 文件已创建,但桥接头未创建。

应该怎么做?

    打开新项目 右键->新建文件->“iOS->源码->Objective-C.m” 已使用 .m 文件创建桥接头。 然后,导入该 .h 和 .m 文件。

【讨论】:

【参考方案2】:

这里我附上了sample video 以了解如何创建Objective-C Bridging Header,如果您需要更多答案或第二个选项,您需要Henny Lee 答案也可以。

【讨论】:

链接已损坏。请把答案的文本表示。链接容易损坏【参考方案3】:

尝试转到您的项目设置。在Build Settings 选项卡中,转到搜索字段并搜索bridging。在以下搜索结果中,您应该会看到:Swift 编译器 - 代码生成,设置为 Objective-C Bridging Header。将值更改为您的项目路径(存储项目文件的位置),您应该一切顺利。

【讨论】:

在左上角,有一个BasicAll 的按钮。按All 按钮,它应该会显示。 你明白了。如何找到项目路径?? 一种简单的方法是:单击项目中的随机 (swift) 文件。在您的实用程序面板(包含所有选项等)中应该有两个图标。如果尚未选择,请单击看起来像文档的左侧图标。在第二部分有该文件的完整路径。使用该路径(减去您单击的文件名)。 Objective C 桥接头 /Users/xxxxxyyyy/Desktop/POC_PROJ/FULL_Swift/pendul_test/

以上是关于无法快速创建桥接头的主要内容,如果未能解决你的问题,请参考以下文章

Xcode中如何快速创建一个Objc与Swift桥接的头文件

如何为 Dev 版本和 Prod 版本添加桥接头?

无法导入桥接头 facebook sdk

无法在快速单元测试中使用 Objective-C 类

无法在 Swift 项目中添加 Objective C 桥接头

无法在 Swift 项目中添加 Objective C 桥接头