【发布时间】:2014-03-11 23:07:47
【问题描述】:
代码:
UIColor * color = [UIColor colorWithHue:0.3 saturation:0.2 brightness:0.2 alpha:1];
CGFloat r,g,b,a;
[color getRed:&r green:&g blue:&b alpha:&a];
NSData * colorData = [NSKeyedArchiver archivedDataWithRootObject:color];
UIColor * unarchivedColor = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];
[unarchivedColor getRed:&r green:&g blue:&b alpha:&a];
正如预期的 32 位版本,unarchivedColor 和 color 具有完全相同的 rgb 值。在 arm64 构建中,unarchivedColor 和 color 开始在小数点后 9 位左右开始不同。
换句话说,归档/取消归档 UIColor 会修改 arm64 上的颜色...我不希望这种情况发生。这是怎么回事,有没有办法解决这个问题?
【问题讨论】:
标签: ios iphone objective-c ipad nscoding