如何在CoreData中存储typedef枚举

Gor*_*tch 2 cocoa enums core-data

我有一个typedef枚举,用于表示排队系统中的作业状态,定义为

typedef enum  {
kTWjobStateRunning,
kTWjobStateQueued,
kTWjobStateError
}TWjobState;
Run Code Online (Sandbox Code Playgroud)

一切都很好,但现在我想将它作为CoreData中的属性存储.我的第一个想法是,枚举基本上是一个整数,所以将包装TWjobStateNSNumber作品中?我是否必须使用强制转换来说服编译器?

最佳实践问题
我经常在Cocoa和Foundation类中看到这种枚举的使用以及bitmasks的使用.是否有更现代,更面向对象的方式来实现同样的目标?

谢谢你的帮助.

Dav*_*ong 9

将枚举存储在an中NSNumber是正确的方法.

  • 虽然如果你修改`enum`并假设你在枚举中使用顺序值,它将需要更新,你可以使用CoreData的验证系统来设置对应于最大/最小枚举值的上限和下限. (4认同)