UIImagePNGRepresentation()
вернет nil
, если предоставленный UIImage не содержит никаких данных. Из документации UIKit< /а>:
Возвращаемое значение
Объект данных, содержащий данные PNG, или nil, если возникла проблема с созданием данных. Эта функция может возвращать nil, если изображение не содержит данных или базовая CGImageRef содержит данные в неподдерживаемом формате растрового изображения.
Когда вы инициализируете UIImage
, просто используя UIImage()
, он создает UIImage
без данных. Хотя изображение не равно нулю, оно все еще не содержит данных. А поскольку в изображении нет данных, UIImagePNGRepresentation()
просто возвращает nil
.
Чтобы исправить это, вам придется использовать UIImage
с данными. Например:
var imageName: String = "MyImageName.png"
var image = UIImage(named: imageName)
var rep = UIImagePNGRepresentation(image)
Где imageName
— это имя вашего изображения, включенного в ваше приложение.
Чтобы использовать UIImagePNGRepresentation(image)
, image
не должно быть nil
, а также должно иметь данные.
Если вы хотите проверить, есть ли у них какие-либо данные, вы можете использовать:
if(image == nil || image == UIImage()){
//image is nil, or has no data
}
else{
//image has data
}
person
Jojodmo
schedule
04.03.2015
UIImagePNGRepresentation(UIImage())
илиUIImage()
просто заполнитель для уже созданного UIImage? - person Jojodmo   schedule 04.03.2015= UIImage()
. Затем позже я сравниваю это свойство с другим UIImage. Это сравнение выполняется черезUIImagePNGRepresentation(image1) == UIImagePNGRepresentation(image2)
- person Rodrigo Ruiz   schedule 04.03.2015