Objective C接口生成的标头无法导入其他标头

时间:2016-05-27 16:03:05

标签: objective-c swift bridging

我不是Obj C专业人员,但我应该在Objective C中编写一些代码并将Swift代码桥接到它。 我成功将Generated Header导入.m文件:

#import "<my_module>-Swift.h"

但是当我尝试将相同的标头导入.h文件时,它会抛出此错误: enter image description here

BTW,我只想添加一个公共变量,将Swift类中的实例添加到特定的obj c类中。我试图将这些行放在.h和.m文件中:

@property (nonatomic, readwrite, strong) Card *card;

我该怎么办?

2 个答案:

答案 0 :(得分:1)

在您的情况下,由于您需要做的就是声明类型为Card*的属性,因此您实际上不需要导入标题 - 您只需转发声明在使用之前使用@class Card;的课程。

答案 1 :(得分:0)

如果要在Objective-C标头中引用Swift类,则不能#import *-Swift.h文件,而应该使用https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html中所述的前向声明,请参阅标题为在Objective-C标头中引用Swift类或协议的部分。这基本上是@jtbandes在评论中提出的建议。

这里有一个问题:你想在Objective-C中使用的Swift类必须直接或间接地扩展NSObject类。