使用enum作为领域模型ios objective-c的属性

使用enum作为领域模型ios objective-c的属性,ios,objective-c,database,realm,Ios,Objective C,Database,Realm,是否可以将枚举用作我的模型的属性?我现在有一个这样的课程: typedef NS_ENUM(NSUInteger, ListType) { ListTypeDay, ListTypeWeek, ListTypeMonth, ListTypeYear, ListTypeCustom }; @interface ListItem : RLMObject; @property (nonatomic, copy) NSString *title; @property (nonat

是否可以将枚举用作我的模型的属性?我现在有一个这样的课程:

typedef NS_ENUM(NSUInteger, ListType) {
  ListTypeDay,
  ListTypeWeek,
  ListTypeMonth,
  ListTypeYear,
  ListTypeCustom
};

@interface ListItem : RLMObject;

@property (nonatomic, copy) NSString *title;
@property (nonatomic, assign) ListType itemType;
@property (nonatomic, assign) BOOL isFinish;
@property (nonatomic, assign) NSTimeInterval targetTime;

@end

RLM_ARRAY_TYPE(ListItem)
终端输出:


由于未捕获的异常“RLMEException”,正在终止应用程序,原因:“无法使用不兼容的类型持久化属性”itemType“。添加到ignoredPropertyNames:要忽略的方法。“

否,您不能在域中存储自定义类型(包括枚举)。请参阅文档中的

Realm支持以下属性类型:BOOL、BOOL、int、NSInteger、long、long、float、double、NSString、NSDate、NSData和使用特定类型标记的NSNumber


只需在类型定义中将NSInteger替换为NSInteger

typedef NS_ENUM(NSInteger, ListType) 

您可以给出在objective c中添加枚举的代码示例吗?您可以将枚举的原始值存储在域中,然后根据原始值再次创建枚举实例。遗憾的是,我已经有很长一段时间没有写任何Obj C了,但是如果你仍然不能理解这一点,我可以用Swift给你一个示例代码。谢谢你的关注,但我可以用Swift来写,但实际上在目标C中遇到了一些问题。。。你所得到的错误是非常清楚的,与我的回答所说的是一样的。您仍在尝试在域中存储枚举类型,目前不支持该操作。rawValue的类型为NSInteger。但是枚举的类型是
enumYourEnumName
。枚举不是基元类型,因此如果创建枚举,也将为其创建新类型。