gpt4 book ai didi

ios - 如何将我自己的枚举存储为 CoreData 中的属性

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:53:33 27 4
gpt4 key购买 nike

我定义了一个名为 MyEnum 的全局枚举:

enum MyEnum: Int{
case year = 100, month, week, day
}

目的是将这个枚举存储为我的实体的一个属性(我在 xcdatamodel 文件中声明这个枚举属性是可转换的):

enter image description here

创建 NSManagedObject 子类后,在 +CoreDataProperties.swift 中,我尝试更改

@NSManaged public var myEnum: NSObject

@NSManaged public var myEnum: MyEnum

但是在执行saveContext()的时候,还是报错了。刚刚开始学习,不知道下一步该怎么做

那么我应该做些什么额外的工作来将我的枚举存储为我的实体的属性?

请使用swift,感谢任何帮助

最佳答案

我们通常将枚举作为字符串或整数存储到数据库中。这真的取决于使用哪种情况,但考虑到你有类似的东西

@NSManaged public var myEnumAsInteger: Int

然后要保存它,您要做的就是:

myObject.myEnumAsInteger = enumValue.rawValue

阅读它:

enumValue = MyEnum(rawValue: myObject.myEnumAsInteger)

或者您可以创建另一个属性并覆盖 getter、setter:

@NSManaged public var myEnumAsInteger: Int

var myEnum: MyEnum {
set {
self.myEnumAsInteger = newValue.rawValue
}
get {
return MyEnum(rawValue: self.myEnumAsInteger) ?? .year // Or whatever the default is
}

}

关于ios - 如何将我自己的枚举存储为 CoreData 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48143778/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com