【问题标题】:UIImagePickerControllerDelegate didFinishPickingMediaWithInfo giving me an error [duplicate]UIImagePickerControllerDelegate didFinishPickingMediaWithInfo 给我一个错误[重复]
【发布时间】: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


【解决方案1】:

使用最新语法

func imagePickerController(_ picker: UIImagePickerController, 
  didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

guard let mediaType = info[.mediaType] as? String,
    mediaType == (kUTTypeMovie as String),
    let url = info[.mediaURL] 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)
    }
 }
}

【讨论】:

    猜你喜欢
    • 2018-09-01
    • 2021-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    相关资源
    最近更新 更多