是否可以将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:忽略的方法。'
答案 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)