我正在使用Xcode 7和swift我在iPhone中运行我的应用程序时出现此错误:
无法将
类型[String : AnyObject]
类型的值指定为UIImage?
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
imgview.image = info
[UIImagePickerControllerOriginalImage]as?UIImage;
dismissViewControllerAnimated(true, completion: nil)
}
答案 0 :(得分:1)
问题是你不能将[]
运算符拆分到Swift中的单独一行:方括号需要与被解除引用的字典在同一行。另外,不要忘记解雇并释放picker
。
picker.dismissModalViewControllerAnimated(true)
picker.release()
imgview.image = info[UIImagePickerControllerOriginalImage] as UIImage
由于Swift不使用强制分号来分解语句,因此您需要更加关注哪一行。您的代码解释如下:
info
分配给imgview.image
UIImagePickerControllerOriginalImage
到UIImage
显然,这不是你想要获得的效果。将方括号移动到与info
相同的行将解决此问题。
答案 1 :(得分:0)
info
是一本字典,这是[String : AnyObject]
的含义。字典的键是字符串,值可以是任何对象。然而,你写道:
imgview.image = info
因此,您为imgview.image
分配了一些字典,但imgview.image的类型为UIImage可选。相反,你需要像:
let image = info[UIImagePickerControllerEditedImage] as! UIImage
imageView.image = image