错误:无法用索引类型为"UIImagePickerController.InfoKey"的下标"[String:Any]"类型的值
问题描述:
我正在尝试重建Apple测试应用程序以通过CoreML进行图像检测,但是出现错误:
I am trying to rebuild the Apple test App for image detection via CoreML, but I have the error:
不能用索引类型为'UIImagePickerController.InfoKey'的类型为[[String:Any]'的值下标
Cannot subscript a value of type '[String : Any]' with an index of type 'UIImagePickerController.InfoKey
extension ImageClassificationViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) {
picker.dismiss(animated: true)
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
imageView.image = image
updateClassifications(for: image)
}
该错误出现在行中:
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
答
您似乎正在使用Xcode 10/iOS12.委托方法的签名已更改.
It appears you are using Xcode 10/iOS 12. The signature of the delegate method changed.
对于info
键,请使用UIImagePickerController.InfoKey
而不是String
.
Use UIImagePickerController.InfoKey
instead of String
for the info
keys.
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any])
然后使用.originalImage
代替UIImagePickerControllerOriginalImage
.
extension ImageClassificationViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
picker.dismiss(animated: true)
let image = info[.originalImage] as! UIImage
imageView.image = image
updateClassifications(for: image)
}