我一直在挖掘,但无法找到这个例子的答案。
我正在创建一个包含用户数据的应用,例如姓名,个人资料图片等。
每次用户进行更改并保存更改时,我都会将更改更新/保存到Web服务器以进行更改。
这是我的问题进入的地方。
有没有办法检查用户是否更改了他的个人资料图片?
用户可以访问相机胶卷并且不会更改图片,只需返回之前的活动即可。没有进行更改,但他也可以单击更改配置文件图片并选择已设置的相同图片,所以我怎么知道图片是相同的,所以我可以避免新上传到服务器,同样图像?
在上传图像之前,我将其转换为NSData,并且我检查了生成的字节数组以及第一个和最后一个字节,大多数时候都是相同的,这是因为我试图连接成一个字符串到图像名称末尾的最后一个字节(作为字符串,例如:ProfilePic89504e47),但我根本不喜欢这种方法。
答案 0 :(得分:1)
您可以使用isEqualToData:
比较两个NSData对象。表示您已经上传的那个,以及刚刚从相机中选择的新的。
或者,您可以在两个NSData实例上计算MD5哈希(或类似),并进行比较。
答案 1 :(得分:-1)
一般情况下,如果这些是本地图像,您应该能够在更改其个人资料图片之前存储图像,然后您可以将该图像与最终通过 image1 == image2设置的图像进行比较击>
您必须比较基础数据,因此从Here开始,您可以执行以下操作:
if let firstImage = UIImage(named: "firstImage") {
let firstImageData = UIImagePNGRepresentation(firstImage)
let compareImageData = UIImagePNGRepresentation(secondImage)
if let empty = emptyData, compareTo = compareImageData {
if empty.isEqualToData(compareTo) {
// First image is the same as Second
} else {
// Second image is not equal to first
}
} else {
// Creating NSData from Images failed
}
}