更新Xcode Swift [重复]

问题描述 投票:0回答:3

我只是更新xcode(10.0)更新后我更新以及快速语言版本(4.2)但更新快速语言的中间给我一些错误我真的很困惑如何解决这个问题:

错误:

无法下标类型'[String:Any]'的值,其索引类型为'UIImagePickerController.InfoKey'

@objc(imagePickerController:didFinishPickingMediaWithInfo:) func  imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo Info: [String: Any]){
    let mediatype = Info[UIImagePickerControllerMediaType] as! NSString
    if mediatype.isEqual(to: kUTTypeImage as String) {
        let imagecopy = Info[UIImagePickerControllerOriginalImage] as! UIImage
        profileImage.image = imagecopy
        if newpic == true {
            UIImageWriteToSavedPhotosAlbum(imagecopy, self, #selector(imageError),nil)
        }
    }
     self.dismiss(animated:true,completion:nil)
     onlyUploadImage()
}

错误屏幕截图

有人可以向我解释如何解决这个问题,我试图解决这个问题,但还没有结果。

谢谢

ios swift xcode
3个回答
1
投票

委托功能已更改。现在它是

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

您可以从信息词典中获取以下信息

info[UIImagePickerController.InfoKey.mediaType]

info[UIImagePickerController.InfoKey.editedImage]

希望这可以帮助。


1
投票

替换你的

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo Info: [String: Any]) {}

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


1
投票

由于Swift 4.2版本的更改,您收到错误。

使用此代码:

func imagePickerController(_ picker: UIImagePickerController,
                           didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    picker.dismiss(animated: true)
    if let originalImage = info[.originalImage] as? UIImage {
        print(originalImage)
    }
}

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    picker.dismiss(animated: true)
}
© www.soinside.com 2019 - 2024. All rights reserved.