即使我检查 self.photoImageView.image != nil
是否在倒数第二行中 applyBlurEffect
时仍然会遇到fatal error: unexpectedly found nil while unwrapping an Optional value
错误。
您知道如何和解吗?
if (output?.getAccel() == true){
if (output?.getImage() != nil){
if (self.photoImageView.image != nil){
println(photoImageView.image)
var blurredImage = self.applyBlurEffect(self.photoImageView.image!)
self.photoImageView.image = blurredImage
}
对于上下文,我有一个photoImageView
,当将"加速度计"按钮插入该photoImageView
时,此函数会占用该图像,模糊并将图像更新为模糊图像。
也打印photoImageView.image
时,它返回 Optional(<UIImage: 0x174087d50> size {1340, 1020} orientation 0 scale 1.000000)
。其中可能有问题,但我需要一点帮助来解决它。
在Swift中,您必须使用可选绑定来确保可选的不是零。在这种情况下,您应该做这样的事情:
if let image = self.photoImageView.image {
//image is set properly, you can go ahead
} else {
//your image is nil
}
这是Swift中非常重要的概念,因此您可以在此处阅读更多。
update :正如@rdelmar所说的,可选绑定在这里不强制性,检查nil
也应该足够了。我个人更喜欢使用可选的绑定。它的好处之一是multiple optional binding
,而不是检查零的所有选项:
if let constantName = someOptional, anotherConstantName = someOtherOptional {
statements
}