【问题标题】:Why does a UIColor's values change after serialization/deserialization?为什么序列化/反序列化后 UIColor 的值会发生变化?
【发布时间】:2016-04-14 04:31:14
【问题描述】:

如果您创建一种颜色然后运行[color isEqual:[NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:color]]],您会发现答案可能是否定的,至少在我的测试中,值介于 0 和 1 之间。新颜色非常非常接近,但它与旧颜色并不完全相同,至少在其内部表示方面。也许它具有相同的实际输出颜色,考虑到它使用 64 位来表示只需要 8 位的内容。

有什么想法吗?

【问题讨论】:

  • 使用相关代码更新您的问题。显示之前和之后的值。

标签: ios serialization uicolor nskeyedarchiver


【解决方案1】:

我认为这与序列化时颜色的表示有关。它可能表示为浮点数,如果是这样,this 可能会发生。我认为如果你实现自己的序列化,使用字符串或其他东西,你可以避免这种情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-19
    • 1970-01-01
    • 1970-01-01
    • 2015-04-16
    • 1970-01-01
    • 2012-05-25
    • 1970-01-01
    相关资源
    最近更新 更多