该isEqual:方法是确定两个图像是否包含相同图像数据的唯一可靠方法。即使使用相同的缓存图像数据初始化它们,创建的图像对象也可能彼此不同。确定它们是否相等的唯一方法是使用isEqual:比较实际图像数据的方法。清单1展示了比较图像的正确和不正确的方法。
资料来源:Apple文档
// 加载相同的图像两次。
let image1 = UIImage(named: "MyImage")
let image2 = UIImage(named: "MyImage")
// 图像对象可能不同,但内容仍然相等
if let image1 = image1, image1.isEqual(image2) {
//正确。此技术可以正确比较图像数据。
}
if image1 == image2 {
//不对!直接对象比较可能不起作用。
}// 加载相同的图像两次。
UIImage* image1 = [UIImage imageNamed:@"MyImage"];
UIImage* image2 = [UIImage imageNamed:@"MyImage"];
// 图像对象可能不同,但内容仍然相等
if ([image1 isEqual:image2]) {
//正确。此技术可以正确比较图像数据。
}
if (image1 == image2) {
//不对!直接对象比较可能不起作用。
}