gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:56:48 25 4
gpt4 key购买 nike

我有一个使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com