我正在尝试重建Apple测试应用程序以通过CoreML进行图像检测,但是出现错误:
不能用索引类型为“ UIImagePickerController.InfoKey”的索引下标“ [String:Any]”类型的值
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
答案 0 :(得分:2)
您似乎正在使用Xcode 10 / iOS12。委托方法的签名已更改。
使用UIImagePickerController.InfoKey
代替String
作为info
键。
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)
}