'无法为索引类型为'UIImagePickerController.Infokey'的类型[[NSObject:AnyObject]'下标”

时间:2019-07-10 08:06:55

标签: swift xcode uiimagepickercontroller mailcore2

我正在开发一个无需使用IOS客户端即可发送邮件的应用程序。 我决定使用mailcore2异步api。 现在,我能够发送电子邮件,但我想向其添加附件,而我实际上是想单击按钮,打开图库,选择图片并获取其路径。 我正在尝试这段代码,但是我的“

出现在第 2 7 行中
  

让imageURL

  

让图片

”:

  

”无法用类型“ [NSObject:AnyObject]”下标   'UIImagePickerController.InfoKey'类型的索引

这是代码:

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]) {
        let imageURL = info[UIImagePickerController.InfoKey.referenceURL] as NSURL
        let imageName = imageURL.path!.lastPathComponent
        let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first as! String
        let localPath = documentDirectory.stringByAppendingPathComponent(imageName)

        let image = info[UIImagePickerController.InfoKey.originalImage] as UIImage
        let data = UIImagePNGRepresentation(image)
        data.writeToFile(localPath, atomically: true)

        let imageData = NSData(contentsOfFile: localPath)!
        let photoURL = NSURL(fileURLWithPath: localPath)
        let imageWithData = UIImage(data: imageData)!

        picker.dismiss(animated: true, completion: nil)
    }

1 个答案:

答案 0 :(得分:0)

您使用的是较早版本的Swift,以获取图片网址:

let imageURL = info[UIImagePickerControllerReferenceURL] as NSURL

我建议您将来升级到Swift 5.0