Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I need to check if a file loaded into an UIImage object file is equal to another image and execute some actions if so. Unfortunately, it's not working.

emptyImage = UIImage(named: imageName)

if(image1.image != emptyImage) {
    // do something
} else {
    // do something
}

The above code always enters the if branch.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
1.2k views
Welcome To Ask or Share your Answers For Others

1 Answer

You cannot compare two UIImage objects using the != or == operators, one option is comparing as NSData using the UIImagePNGRepresentation to convert it to NSData objects, like in the following code:

func areEqualImages(img1: UIImage, img2: UIImage) -> Bool {

   guard let data1 = UIImagePNGRepresentation(img1) else { return false }
   guard let data2 = UIImagePNGRepresentation(img2) else { return false }

   return data1.isEqualToData(data2)
}

I hope this help you.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...