在核心数据实体中使用枚举类型值

Yim*_*ang 2 xcode core-data swift

如何在核心数据实体属性中使用枚举类型值?除了选择可变形。

Tom*_*ton 5

你不能直接存储枚举类型,因为 Core Data 不理解 Swift 枚举。您需要声明枚举具有某种原始值,并将原始值保存在 Core Data 中。就像是

enum Bar : Int {
    case bar1;
    case bar2;
}

let myBar = Bar.bar1

// Then save myBar.rawValue in Core Data as an integer type
Run Code Online (Sandbox Code Playgroud)

读取时,从 Core Data 中获取整数值并将其转换为枚举为

let rawValue = managedObject.bar
let value = Bar(rawValue: rawValue)
Run Code Online (Sandbox Code Playgroud)