【发布时间】:2019-05-15 05:26:06
【问题描述】:
我正在尝试从设备中获取图像和视频并尝试声明UIImagePickerDelegate 和UINavigationControllerDelegate 但在guard let... 线上,它给了我一个错误:
无法使用“UIImagePickerController.InfoKey”类型的索引为“[String: Any]”类型的值下标
在let url = info... 线上,它给了我同样的错误。
我该如何处理?
//UIImagePickerControllerDelegate
extension SecondViewController: UIImagePickerControllerDelegate {
private func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
guard let mediaType = info[UIImagePickerControllerMediaType] as? String,
mediaType == (kUTTypeMovie as String),
let url = info[UIImagePickerControllerMediaURL] as? URL
else { return }
dismiss(animated: true) {
let player = AVPlayer(url: url)
let vcPlayer = AVPlayerViewController()
vcPlayer.player = player
self.present(vcPlayer, animated: true, completion: nil)
}
}
}
//UINavigationControllerDelegate
extension SecondViewController: UINavigationControllerDelegate {
}
【问题讨论】:
-
是的,我使用的是 Xcode 10 和 Swift 4.2。非常感谢!!!
-
发帖前总是搜索错误。这个问题已经被问过好几次了。
-
@rmaddy 不,我已经搜索过了,我的错误的具体类型从未得到解答,关于 UIImagePickerControllerDelegate 也有类似的问题,但现在 Sh_Khan 得到了回答,并且成功了。
-
其他都是重复的。它们向您展示了编写更新的图像选择器委托的正确方法。仅仅因为您碰巧使用了其他几个键并不意味着您无法通过查看包含 exact 相同错误消息的明显重复项来简单地找出那个微不足道的差异。祝你好运。
标签: ios swift uiimagepickercontroller