Ios UIIMAGEPICKERCONTROLLEGATE未使用信息完成对媒体的点击,并向我提供了一个错误

Ios UIIMAGEPICKERCONTROLLEGATE未使用信息完成对媒体的点击,并向我提供了一个错误,ios,swift,uiimagepickercontroller,Ios,Swift,Uiimagepickercontroller,我正在尝试从设备获取图像和视频,并尝试声明UIImagePickerDelegate和UINavigationControllerDelegate,但在线路guard let…上,它给了我一个错误: 无法使用“UIImagePickerController.InfoKey”类型的索引为“[String:Any]”类型的值下标 在let url=info…行中,它给出了相同的错误 我该怎么办 //UIImagePickerControllerDelegate extension SecondVie

我正在尝试从设备获取图像和视频,并尝试声明
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 {
}
使用最新语法

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)
    }
 }
}
使用最新语法

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)
    }
 }
}

是的,我使用的是Xcode 10和Swift 4.2。谢谢!!!在发布前始终搜索错误。这已经被问过并回答过好几次了。@rmaddy不,我已经搜索过了,我的错误的具体类型从来没有被回答过,关于UIImagePickerControllerDelegate也有类似的问题,但现在Sh_Khan回答了,并且成功了。其他的都是重复的。它们向您展示了编写更新的图像选择器委托的正确方法。仅仅因为您碰巧使用了一些其他的键,并不意味着您无法通过查看覆盖完全相同错误消息的明显重复项来发现细微的差异。祝你好运。是的,我正在使用Xcode 10和Swift 4.2。谢谢!!!在发布前始终搜索错误。这已经被问过并回答过好几次了。@rmaddy不,我已经搜索过了,我的错误的具体类型从来没有被回答过,关于UIImagePickerControllerDelegate也有类似的问题,但现在Sh_Khan回答了,并且成功了。其他的都是重复的。它们向您展示了编写更新的图像选择器委托的正确方法。仅仅因为您碰巧使用了一些其他的键,并不意味着您无法通过查看覆盖完全相同错误消息的明显重复项来发现细微的差异。祝你好运