enum Objstatus: Int16 { case State1 = 0 case State2 = 1 case State3 = 3}class StateFullManagedobject: NSManagedobject { @NSManaged var state: Int16}
最后一步是将StateFullManagedobject的状态var转换为Objstatus进行直接比较,这对我来说不起作用。例如,我不能使用Int16和Int16枚举之间的==运算符。我得到的编译时间错误是
Int16 is not convertible to ‘Mirrordisposition’
。参见条件如下:
var obj: StateFullManagedobject = // get the objectif (obj.status == Objstatus.State1) { // Int16 is not convertible to 'Mirrordisposition'}
在Int16和枚举之间如何比较/分配?
您可以使用Objstatus的.rawValue属性提取原始Int16值。// compareobj.state == Objstatus.State1.rawValue// storeobj.state = Objstatus.State1.rawValue
但是您可能希望实现stateEnum访问器:
class StateFullManagedobject: NSManagedobject { @NSManaged var state: Int16 var stateEnum:Objstatus { // ↓ If self.state is invalID. get { return Objstatus(rawValue: self.state) ?? .State1 } set { self.state = newValue.rawValue } }}// compareobj.stateEnum == .State1// storeobj.stateEnum = .State1// switchswitch obj.stateEnum {case .State1: //...case .State2: //...case .State3: //...}总结
以上是内存溢出为你收集整理的核心数据 – Swift:使用枚举将状态存储在CoreData中全部内容,希望文章能够帮你解决核心数据 – Swift:使用枚举将状态存储在CoreData中所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)