Ios 如何将枚举添加到领域模型?雷姆宾特?

Ios 如何将枚举添加到领域模型?雷姆宾特?,ios,objective-c,enums,crash,realm,Ios,Objective C,Enums,Crash,Realm,这是我的服务模型 typedef NS_ENUM(NSInteger, OKServiceType) { OKServiceTypePending = 0, OKServiceTypeAccepted , OKServiceTypeStarted, OKServiceTypeCompleted, OKServiceTypeClosed, OKServiceTypeCancelled }; @interface serviceModel : RLMO

这是我的服务模型

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)
我知道我们可以将属性类型添加为。但我不能;我找不到正确的方法将枚举添加到我的模型中,因为realm仅在开始时收集所有模型,所以它会因此崩溃

@property OKServiceType *status;
我现在有点崩溃

Error Error Domain=NSCOCAERRORDOMAIN Code=3010“模拟器中不支持远程通知”

UserInfo={NSLocalizedDescription=不支持远程通知 在模拟器中支持}2017-06-12 15:20:41.049 AppName[9974:157085]

***由于未捕获的异常“RLMException”,正在终止应用程序,原因:“无法使用不兼容的类型保留属性“status”。加上 ignoredPropertyNames:要忽略的方法。'


任何帮助都将不胜感激

您可能希望将属性存储为受支持的类型
NSInteger
,并创建一个方法,将整数值作为
OKServiceType
类型的枚举返回

@property NSInteger statusInt;

- (OKServiceType)status {
    return (OKServiceType)statusInt
}

- (void)setStatus(OKServiceType)status {
    self.statusInt = status
}

另一种选择是将枚举属性设置为(只读)。只读属性被领域自动忽略,然后您可以使用自定义设置器。例如:

@property (readonly) OKServiceType *status;
@property NSInteger statusInt;

@implementation ServiceModel

- (OKServiceType)status {
    return (OKServiceType)_statusInt;
}

@end

但是添加的枚举不是nsinteger类型吗?我想这是一种受支持的类型。这正是我遇到同样问题时的想法。但是领域中的属性检查目前还没有得到这一点,因此这将是一个使用枚举的小解决方案。它将在swift中进行枚举检查,但是..:(只需从模型上的属性名称中删除指针:
@property-OKServiceType-status;
这样就可以了。