为什么这个变量"nil"即使我有一个"if"语句检查它不是



即使我检查 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
}

相关内容

  • 没有找到相关文章

最新更新