我正在尝试创建一个Objc类,它具有一个enum类型的属性,其中枚举类型是在with中创建的。之后,我想在Swift中使用Objc类。
(Swift)Enum:
import Foundation
@objc enum AffectsUnit:Int {
case time
case person
case group
}(Objc)类
#import "JSONModel.h"
#import "MyApp-Swift.h"
@interface AddPlayerToTime : JSONModel
@property (nonatomic) AffectsUnit affectsUnit;
@endObjc类有一个空的方法文件。
到现在为止还好。没有编译器警告。
因为我还想在Swift中使用objc类。我需要在桥接-Header.h中导入类。
#import "AddPlayerToTime.h"现在,我的快速代码可以看到AddPlayerToTime类,但该项目将不再编译。我得到的错误是:
Unknown type name 'AffectsUnit'我百分之九十九肯定是因为循环引用而打破的。因为我的快速代码是导入AddPlayerToTime类,而AddPlayerToTime是导入我的快速代码。但我不知道怎么解决这个问题。所有关于这个循环参考资料的帖子,似乎都建议使用@class声明。但是,由于我试图引用一个枚举,而不是一个类,这对我来说不是一个解决方案。
我是不是想要完成某件事,这个简单的事情是做不到的?
Edit1:请注意:我希望尽可能多的代码,保持在Swift方面。
发布于 2018-07-04 16:33:58
您应该能够将枚举下垂移到Obj一侧,并且仍然可以让Swift看到它,如下所示:
typedef NS_ENUM(NSInteger, AffectsUnit)
{
AffectsUnitTime,
AffectsUnitPerson,
AffectsUnitGroup
};https://stackoverflow.com/questions/51177766
复制相似问题