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

时间:2017-05-18 10:14:24

标签: ios objective-c database realm

是否可以将Enum用作我的模型的属性?我目前有一个这样的课程:

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)

终端输出:

由于未捕获的异常'RLMException'而终止应用程序,原因是:'无法使用不兼容的类型持久保存属性'itemType'。添加到ignoredPropertyNames:忽略的方法。'

2 个答案:

答案 0 :(得分:1)

不,您无法在Realm中存储自定义类型(包含枚举)。请参阅文档中的Supported Types

  

Realm支持以下属性类型:BOOL,bool,int,NSInteger,long,long long,float,double,NSString,NSDate,NSData和标记有特定类型的NSNumber。

答案 1 :(得分:0)

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

typedef NS_ENUM(NSInteger, ListType)