Swift 错误致命错误:在展开可选值时意外发现 nil

Posted

技术标签:

【中文标题】Swift 错误致命错误:在展开可选值时意外发现 nil【英文标题】:Swift error fatal error: unexpectedly found nil while unwrapping an Optional value 【发布时间】:2015-10-21 15:49:01 【问题描述】:

当我执行“image = self.originalImageView.image!”时在下面的代码中。我收到一个错误信号“致命错误:在展开可选值时意外发现 nil”。谁能告诉我如何克服这个问题?

func displayPhoto()
    
        let imageManager = PHImageManager.defaultManager()

       //  var image:UIImage = self.imageView.image!
    var ID = imageManager.requestImageForAsset(self.photosAsset[self.index] as! PHAsset, targetSize: PHImageManagerMaximumSize, contentMode: .AspectFit, options: nil, resultHandler: (result:UIImage!, info: [NSObject: AnyObject]!)in
        self.originalImageView.image = result     
    )

    var image:UIImage?
    image = self.originalImageView.image!
    print("Hello")

   self.imageView.image = image!.getGrayScale()


【问题讨论】:

查看您的关闭情况。将断点设置为 self.originalImageView.image = result 并检查结果是否为零。 What does "fatal error: unexpectedly found nil while unwrapping an Optional value" mean?的可能重复 【参考方案1】:

requestImageForAsset异步工作,方法退出后在block后面返回结果,将处理结果的代码放入block中。

而且您可能必须在主线程上调度更新 UI。

func displayPhoto()

    let imageManager = PHImageManager.defaultManager()

    //  var image:UIImage = self.imageView.image!
    var ID = imageManager.requestImageForAsset(self.photosAsset[self.index] as! PHAsset, targetSize: PHImageManagerMaximumSize, contentMode: .AspectFit, options: nil, resultHandler: (result:UIImage!, info: [NSObject: AnyObject]!)in
    dispatch_async(dispatch_get_main_queue()) 
      self.originalImageView.image = result
      self.imageView.image = result.getGrayScale()
      
    print("Hello")   
  )

【讨论】:

以上是关于Swift 错误致命错误:在展开可选值时意外发现 nil的主要内容,如果未能解决你的问题,请参考以下文章

swift 2 致命错误:在展开可选值时意外发现 nil - 类别名称

Swift 和 UILabel - 致命错误:在展开可选值时意外发现 nil

Swift 错误 - 致命错误:在展开可选值时意外发现 nil [重复]

(Swift) PrepareForSegue: 致命错误: 在展开可选值时意外发现 nil

SWIFT - 致命错误:在展开可选值时意外发现 nil

swift coredata 致命错误:在展开可选值时意外发现 nil