gpt4 book ai didi

swift - 将 UIColor 存储在 CoreData 中

转载 作者:搜寻专家 更新时间:2023-11-01 06:46:16 25 4
gpt4 key购买 nike

如何在 64 位 上不丢失地存储 UIColor 到 CoreData?在 32 位上,返回正确的 UIColor。

CoreData 设置

  • 属性类型:可转换
  • NSManagedObject 子类属性:@NSManaged var color: UIColor?

存储颜色值之前

color.getRed(&red, green: &green, blue: &blue, alpha: &alpha)

输出例如64 位红色:

0.20000000000000018  

32位输出红色

0.199999928

从 CoreData 获取颜色后

color.getRed(&red, green: &green, blue: &blue, alpha: &alpha)

输出例如64 位红色:

0.20000000298023224 

在 32 位上输出红色:

0.199999928

产生的问题

使用 == 的颜色比较在 64 位上失败,因为值略有不同。在 32 位上一切正常,颜色比较成功。

最佳答案

NSKeyedArchiver.archivedDataWithRootObject(color) 分配给数据变量并将其保存到您的核心数据存储中。

要读取数据,只需将 NSKeyedUnarchiver.unarchiveObjectWithData(colorData) 分配给颜色变量即可。


如果您想知道如何比较 float ,您可以随时引用 this .

关于swift - 将 UIColor 存储在 CoreData 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30434940/

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