拍摄视图快照时出现致命错误:在展开可选值时意外发现 nil

Fatal error while taking snapshot of view: unexpectedly found nil while unwrapping an Optional value

当我拍摄当前视图的快照时,我的应用程序崩溃了,该视图是 UIViewController 显示由 UIPageViewController 生成的照片。

  override func viewDidLoad() {        
    super.viewDidLoad()
    Utils.getImageAsync(photo!.url!, completion: { (photoView) -> () in            
        //Create Basic View Components
        self.view.addSubview(self.createHeaderView())
        self.view.addSubview(self.createScrollView())            
        //Create Blurred View
        self.blurredBgImage!.image = self.blurWithGPUImage(self.takeSnapshotOfView(self.view)) // fatal error: unexpectedly found nil while unwrapping an Optional value
    })

 }

为什么会这样?

通过使用“!”您正在强制展开一个 nil 可选。

您可以使用强制展开“!”如果您知道可选项没有 nil 值。如果您强制解包一个包含 nil 值的可选值,它将导致您遇到的崩溃。

那个?展开可以防止这种情况。基本上它会检查 "if X = nil"。如果是这样 ignore/do 什么都没有。防止崩溃。

我希望我的胡言乱语是有道理的。它在我脑海中确实存在:)