【问题标题】:How to store type Color from SwiftUI into CoreData?如何将 SwiftUI 中的颜色类型存储到 CoreData 中?
【发布时间】:2019-12-23 02:22:25
【问题描述】:

我尝试在核心数据中使用 Transformable 类型,但无法将颜色转换为 NSObject。如果我想存储颜色信息应该怎么做?

【问题讨论】:

标签: ios swift core-data swiftui


【解决方案1】:

您可以使用Transformable,尽管它必须存储为UIColor 而不是Color

withRootObject 是您要保存的颜色。

还请记住,myColour 的类型应为 Data

@NSManaged public var myColour: Data?

然后你可以像下面这样归档数据:

do {
    try obj.myColour = NSKeyedArchiver.archivedData(withRootObject: UIColor.blue, requiringSecureCoding: false)
} catch {
    print(error)
}

检索它使用:

func getColour(data: Data) -> Color {
    do {
        return try Color(NSKeyedUnarchiver.unarchivedObject(ofClass: UIColor.self, from: data)!)
    } catch {
        print(error)
    }

    return Color.clear
}

用法:

Text("This is some blue text.") // we saved it as UIColor.blue earlier.
    .foregroundColor(self.getColour(data: self.data.myColour!))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 2014-10-01
    • 2021-08-09
    • 2019-02-28
    相关资源
    最近更新 更多