imagePickerController 选择照片时出错

Posted

技术标签:

【中文标题】imagePickerController 选择照片时出错【英文标题】:imagePickerController error selecting a Photo 【发布时间】:2015-08-19 19:29:36 【问题描述】:

我正在使用 imagePickerController,但是当我选择一个图像时出现错误:

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

我不知道为什么,因为我用 if let

解开值
  func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) 

    if let img = info[UIImagePickerControllerOriginalImage] as? UIImage 
        photoImageView.image = img
    

    dismissViewControllerAnimated(true, completion: nil)

【问题讨论】:

【参考方案1】:

错误是否发生在该行

photoImageView.image = img

在这种情况下,photoImageView 可能为 nil(它通常是一个隐式展开的可选项)。

从 cmets 更新:

请检查 photoImageView 是否为 @IBOutlet 并且它已连接到情节提要上的 UIImageView。如果您以编程方式创建它,请尝试在设置图像之前将其添加到窗口中的视图中。

【讨论】:

是的,这就是我所看到的,它在那一点上坏了。我该如何解决这个问题? 确保 photoImageView 是一个 IBOutlet 并且它连接到情节提要上的 UIImageView。如果您以编程方式创建它,请尝试在设置图像之前将其添加到窗口中的视图中。 @EnekoAlonso 你是对的!我有 de IBOUlet 属性,但它与情节提要断开了连接!谢谢! 很高兴为您提供帮助。我已经用解决方案更新了@nameCensored 响应,因为他首先指出了问题所在。艾萨克,请把它标记为正确答案。【参考方案2】:

VC调用可能有什么问题。此代码工作正常:

let picker = UIImagePickerController()
            picker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
            picker.allowsEditing  = false
            picker.delegate = self
            self.presentViewController(picker, animated: true, completion: nil)



func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) 
    let image = info[UIImagePickerControllerOriginalImage] as! UIImage
    productImageView.image = image
    dismissViewControllerAnimated(true, completion: nil)

【讨论】:

以上是关于imagePickerController 选择照片时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何将选定的图像从 ImagePickerController 传递到第二个视图控制器?

如何将带有 imagepickercontroller 的照片作为缩略图放入 collectionView 单元格

Swift 3 - 无法覆盖'imagePickerController'

我有证件照,但没有电子版证件照,现急需电子版证件照,请问如何获取?

如何使用 ImagePickerController 直接显示“相机胶卷”

无法获取 UIImage 以匹配自定义 ImagePickerController 预览