为什么UIImagePNGRepresentation(UIImage())
回报nil
?
我正在尝试创建一个UIImage()
在我的测试代码中只是为了断言它已正确传递。
我的两个 UIImage 的比较方法使用UIImagePNGRepresentation()
,但由于某种原因,它正在返回nil
.
谢谢。
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)
Where imageName
是您的应用程序中包含的图像的名称。
为了使用UIImagePNGRepresentation(image)
, image
必须不nil
,并且还必须有数据。
如果你想检查他们是否有任何数据,你可以使用:
if(image == nil || image == UIImage()){
//image is nil, or has no data
}
else{
//image has data
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)