所以我正在尝试使用@objc swift类作为我的Objective-C头文件的属性。


@objc class SwiftClass: NSObject {
}


@interface ObjcObject : NSObject

#pragma mark - Public Properties -
@property (nonatomic, weak) SwiftClass* swiftClass;

但是,如果我使用#import ProjectName-Swift.h,则会出现以下错误:“'ProjectName-Swift.h'文件未找到'

我在这里找到答案,这意味着您实际上无法将Swift导入头文件https://stackoverflow.com/a/29951314/3877767

那我应该如何与objc代码一起使用swift代码呢?如果您不能将@objc标记为swift类作为objc头文件上的属性,则不会调用swift和objc互操作

所以在我的App-Bridging-Header.h里面
#import "ObjcClass.h"

在我的ObjcClass.h里面
 #import "ProjectName-Swift.h"

这给出了错误ProjectName-Swift.h can't find file
要么删除#import ProjectName-Swift.h,要么#import ObjcClass.h可以解决问题,但是我不能分别使用Swift / OBJC代码

最佳答案

您不导入头文件。您将其作为所谓的“桥接标头”提供给编译器,它告诉编译器在两种语言环境之间共享什么。

您需要将头文件放在Objective-C桥接头下,如下所示:

ios - #import ProjectName-Swift.h到头文件中无法将swift用作.h属性吗?-LMLPHP

关于ios - #import ProjectName-Swift.h到头文件中无法将swift用作.h属性吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35305161/

10-13 07:43
查看更多