我正在尝试创建一个具有枚举类型属性的Objc类,其中枚举类型是快速创建的。之后,我想在Swift中使用Objc类。
(快速)枚举:
git fetch
(Objc)类
import Foundation
@objc enum AffectsUnit:Int {
case time
case person
case group
}
Objc类的方法文件为空。
到目前为止,太好了。没有编译器警告。
因为我也想在Swift中使用我的objc类。我需要将类导入到Bridging-Header.h中。
#import "JSONModel.h"
#import "MyApp-Swift.h"
@interface AddPlayerToTime : JSONModel
@property (nonatomic) AffectsUnit affectsUnit;
@end
现在,我的快速代码可以看到AddPlayerToTime类,但是该项目将不再编译。我得到的错误是:
#import "AddPlayerToTime.h"
我有99%的把握会因为循环引用而中断。由于我的Swift代码正在导入AddPlayerToTime类,而AddPlayerToTime正在导入我的Swift代码。但是我不知道该如何解决。关于此循环参考资料的所有文章,似乎都建议使用@class声明。但是由于我试图引用一个枚举而不是一个类,所以这不是我的解决方案。
我是否想完成某件事,简单的事情无法完成?
编辑1: 请注意:我希望在Swift方面保留尽可能多的代码。
答案 0 :(得分:1)
您应该能够将枚举减法移至Obj-C端,并且仍对Swift可见,如下所示:
typedef NS_ENUM(NSInteger, AffectsUnit)
{
AffectsUnitTime,
AffectsUnitPerson,
AffectsUnitGroup
};