今天在开发中遇到一个奇怪的问题,在这里做个记录
- 问题描述:在判断按钮中的图片是否是某一张资源图时发现图片一样,但是比较结果却是NO
self.imageView.image = [UIImage imageNamed@"img"];
if ([self.imageView.image isEqual:[UIImage imageNamed:@"img.png"]]) {
}
代码中 if
返回的是false
控制台打印结果:
po self.imageView.image
<UIImage: 0x282f3b410>, {26, 26}
po [UIImage imageNamed:@"image"]
<UIImage: 0x282f3b410>, {26, 26}
[UIImage imageNamed:@"image.png"]
<UIImage: 0x282ff76b0>, {26, 26}
所以要判断两张图片是否相等,图片的后缀名也必须相同(要么都加,要么都不加)
- 个人猜测:
UIImage 加载资源图的时候会把已经加载过的图片通过类似于键值的方式做一个缓存之类的操作,而键就是图片名;所以,图片名不一样,获取到的图片也就不一样了。