gpt4 book ai didi

iphone - 比较 UIImage 的两种方法显示不同的结果。该相信哪一个呢?

转载 作者:行者123 更新时间:2023-12-03 18:52:44 28 4
gpt4 key购买 nike

我正在尝试比较两个 UIImage。如果我这样比较:

if ([UIImagePNGRepresentation ( holderImage) isEqualToData:UIImagePNGRepresentation([UIImage imageNamed:@"empty_image.png"])])
NSLog(@"empty image");
else
NSLog(@"not empty image");

结果是肯定的,它们是平等的

如果我执行以下操作

` if ([holderImage isEqual:[UIImage imageNamed:@"empty_image.png"]])
NSLog(@"empty image");
else
NSLog(@"not empty image"); `

结果是否定的,他们不是

情况相当复杂,因为:

1)图像必须(这意味着我非常确定)相等,所以我会相信第一个,除非

2) isEqual 比较在其他图像上始终给出真实结果。

所以我完全困惑了。你对此有何看法?顺便说一句,holderImage 刚刚从 NSUserDefaults 中获取。您认为它在存储在 NSUserDefaults 中时是否可能会发生某种变化,以便 isEqual 比较现在处于谎言状态?

最佳答案

UIImage 上的 isEqual 方法看起来是对象的指针/哈希,与 NSData 上的 isEqual 方法类似code> 会看到字节是相同的。

大多数对象使用的isEqual都是基于hash 。在 Apple 文档中,指定 NSData 实现 isEqual方法不同。

Two data objects are equal if they hold the same number of bytes, and if the bytes at the same position in the objects are the same.

关于iphone - 比较 UIImage 的两种方法显示不同的结果。该相信哪一个呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8725204/

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