如何在 CoreData 中存储 typedef 枚举
我有一个 typedef 枚举,用于表示排队系统中的作业状态,它被定义为
typedef enum {
kTWjobStateRunning,
kTWjobStateQueued,
kTWjobStateError
}TWjobState;
一切都很好,但现在我想将其存储为 CoreData 中的属性。我的第一个想法是枚举基本上是一个整数,那么将 TWjobState 包装在 NSNumber
中可以吗?我必须使用强制转换来说服编译器吗?
最佳实践问题
我经常在 Cocoa 和 Foundation 类中看到枚举的使用以及位掩码的使用。是否有更现代、更面向对象的方法来实现相同的目标?
感谢您的帮助。
I have a typedef enum I use to represent a state of a job in a queueing system and it is defined as
typedef enum {
kTWjobStateRunning,
kTWjobStateQueued,
kTWjobStateError
}TWjobState;
Everything is fine, but now I would like to store it as an attribute in CoreData. My first idea is that an enum is basically an integer, so would wrapping the TWjobState
in a NSNumber
work? Do I have to use casts to persuade the compiler?
Best practice question
I saw this use of enums often in Cocoa and Foundation classes and also the use of bitmasks. Is there a more modern, more object-oriented way to achieve the same?
Thanks for your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
将枚举存储在
NSNumber
中是执行此操作的正确方法。Storing enums in an
NSNumber
is the correct way to do this.