Ios Swift 2:UIImagePickerController返回nil或不是UIImage的对象
我刚刚收到了一份针对Ios Swift 2:UIImagePickerController返回nil或不是UIImage的对象,ios,swift,swift2,uiimage,uiimagepickercontroller,Ios,Swift,Swift2,Uiimage,Uiimagepickercontroller,我刚刚收到了一份针对imagePickerController:picker:didFinishPickingMediaWithInfo的独立崩溃报告,其中包含一条EXC_断点消息(我知道强制展开nil值时通常会发生这种情况)。崩溃的代码是: public func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
imagePickerController:picker:didFinishPickingMediaWithInfo
的独立崩溃报告,其中包含一条EXC_断点
消息(我知道强制展开nil值时通常会发生这种情况)。崩溃的代码是:
public func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
let pickedImage = info[UIImagePickerControllerOriginalImage] as! UIImage
dismissViewControllerAnimated(true, completion: nil)
picker.delegate = nil
// ...do something with pickedImage...
}
我假设我需要检查是否已返回UIImage,如下所示:
public func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
dismissViewControllerAnimated(true, completion: nil)
picker.delegate = nil
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
// ...do something with pickedImage...
}
else {
// Show unsupported media type error dialog
}
}
我已将选择器媒体类型设置为图像:
picker.mediaTypes = [kUTTypeImage as String]
所以我很惊讶,
didFinishPickingMediaWithInfo
返回的不是UIImage。知道返回的原因或内容吗?您应该正确地将问题标记为swift2添加swift2,但仍然是swift,因此保留swift标记。除了picker.delegate=nil
,您的代码与我的代码相同(转换为swift 3)。你能重复这个问题吗?如果是这样,如果您注释了将控制器委托设置为nil,该怎么办?请检查,您想要的是信息[UIImagePickerControllerOriginalImage]还是信息[UIImagePickerControllerEditedImage]。已编辑的oneEditing在选取器中被禁用,因此原始图像,谢谢。您应该正确地将问题标记为swift2添加swift2,但它仍然是swift,因此保留swift标记。除了picker.delegate=nil
,您的代码与我的代码相同(转换为swift 3)。你能重复这个问题吗?如果是这样,如果您注释了将控制器委托设置为nil,该怎么办?请检查,您想要的是信息[UIImagePickerControllerOriginalImage]还是信息[UIImagePickerControllerEditedImage]。已编辑的oneEditing在选取器中被禁用,因此将保留原始图像,谢谢。