这是我的serviceModel.h
typedef NS_ENUM(NSInteger, OKServiceType) {
OKServiceTypePending = 0,
OKServiceTypeAccepted ,
OKServiceTypeStarted,
OKServiceTypeCompleted,
OKServiceTypeClosed,
OKServiceTypeCancelled
};
@interface serviceModel : RLMObject
@property NSString *job_id;
@property NSString *job_service_id;
@property NSString *service_id;
@property NSString *vendor_id;
@property NSString *timeslot;
@property NSString *points;
@property OKServiceType *status;
@property NSString *service_name;
@property NSString *image_url;
@property NSString *vendor_name;
@property NSString *subservice_desc;
@property NSString *subservice_id;
@property NSString *display_datetime;
@property NSString *status_text;
@end
RLM_ARRAY_TYPE(serviceModel)
我知道我们可以将属性类型添加为These。但我无法找到正确的方法将枚举添加到我的模型中,因为领域仅在启动时收集所有模型,因此它会因此而崩溃
@property OKServiceType *status;
我正在崩溃
错误错误域= NSCocoaErrorDomain代码= 3010“模拟器中不支持远程通知”
UserInfo = {NSLocalizedDescription =远程通知不是 在模拟器中支持} 2017-06-12 15:20:41.049 AppName [9974:157085]
***因未捕获的异常“RLMException”而终止应用程序,原因是:'无法使用不兼容的类型保持属性'状态'。添加 ignoredPropertyNames:忽略的方法。'
任何帮助都会受到赞赏..
答案 0 :(得分:2)
也许您希望将属性存储为NSInteger
,这是一种受支持的类型,并创建一个方法,将整数值作为OKServiceType
类型的枚举返回。
@property NSInteger statusInt;
- (OKServiceType)status {
return (OKServiceType)statusInt
}
- (void)setStatus(OKServiceType)status {
self.statusInt = status
}
答案 1 :(得分:1)
另一种方法是将枚举属性设置为(只读)。 Realm会自动忽略只读属性,然后您可以使用自定义setter。例如:
@property (readonly) OKServiceType *status;
@property NSInteger statusInt;
@implementation ServiceModel
- (OKServiceType)status {
return (OKServiceType)_statusInt;
}
@end