核心数据 – Swift:使用枚举将状态存储在CoreData中

核心数据 – Swift:使用枚举将状态存储在CoreData中,第1张

概述我想在CoreData中存储被管对象的枚举状态 enum ObjStatus: Int16 { case State1 = 0 case State2 = 1 case State3 = 3}class StateFullManagedObject: NSManagedObject { @NSManaged var state: Int16} 最后一步是将S 我想在CoreData中存储被管对象的枚举状态
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中所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1055586.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存