objective-c - 将使用 swift 类的 objective-c 类添加到桥接 header Projectname_swift.h 未找到

标签 objective-c swift

我有一个使用 swift 类的 objective-c 类。一切正常。

我想将 objective-c 类导入到一个 swift 类中,所以我将它的头文件添加到桥接头文件中。突然间我收到一个错误,找不到 Projectname_swift.h 文件。

关于如何解决这个问题有什么想法吗? 这真的可能吗?

最佳答案

已创建循环引用,导致 Swift 代码无法编译(这导致金丝雀错误,指出未找到 _Swift.h 文件)。

我对类似问题提供了更深入的回答 herehere .

长话短说,documentation明确表示不要这样做:

To avoid cyclical references, don’t import Swift code into an Objective-C header (.h) file. Instead, you can forward declare a Swift class or protocol to reference it in an Objective-C interface.

Forward declarations of Swift classes and protocols can only be used as types for method and property declarations.

为了使您的代码再次编译,您需要删除 #import "Projectname_Swift.h"来自有问题的 Objective-C header 的行。理想情况下,您可以简单地将 import 语句移动到您的 .m 文件中,但是如果您需要在 ObjC header 中公开公开 Swift 类,那么您必须使用 @class SomeSwiftClass; 转发声明它。 .

关于objective-c - 将使用 swift 类的 objective-c 类添加到桥接 header Projectname_swift.h 未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44171799/

相关文章:

ios - 嵌套推送动画 iOS7 错误?

iphone - 边界检测纸张opencv

objective-c - ios - UIActivityIndi​​catorView 是否应该默认显示?

swift - 将 Internet url 加载到 Webview

ios - 在 Swift 中以编程方式更改 iAd 位置

ios - 对视频文件应用滤镜

ios - 如何在另一个 View 拖动时移动一个 View

xcode - 设置兼容所有 iDevices 的背景图片

ios - 如何根据设备动态计算 UITableViewCell 的高度

swift - 值(forKey :) for NSObject not working in Swift 4