UIImagePickerControllerOriginalImage 在 ios 11.2.1 中不起作用 [英] UIImagePickerControllerOriginalImage is not working in ios 11.2.1

查看:27
本文介绍了UIImagePickerControllerOriginalImage 在 ios 11.2.1 中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在什么情况下我会难过?如果我将 allowEditing 设置为 false.

In what cases will I be sad? if I have set allowEditing as false.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let selectedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
        // I am happy :)
    } else {
        // I am sad :(
    }
    dismiss(animated: true, completion: nil)
}

(我在 iOS 11.2.1 iPhone SE 中崩溃了(根据 Crashlytics),所以很困惑,如果有可能失败的合法条件,或者只是一个 iOS 错误.)

(I got a crash in iOS 11.2.1 iPhone SE(as per Crashlytics), so confused if there are legit conditions where this can fail or it is just an iOS bug.)

推荐答案

我最终使用了这个:

import Photos

extension UIImage {
    static func from(info: [String : Any]) -> UIImage? {
        if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
            return image
        }

        var imageToBeReturned: UIImage?
        if let url = info[UIImagePickerControllerReferenceURL] as? URL,
            let asset = PHAsset.fetchAssets(withALAssetURLs: [url], options: nil).firstObject {
            let manager = PHImageManager.default()
            let option = PHImageRequestOptions()
            option.isSynchronous = true
            manager.requestImage(for: asset, targetSize: CGSize(width: 1000, height: 1000), contentMode: .aspectFit, options: option, resultHandler: {(image: UIImage?, info: [AnyHashable : Any]?) in
                imageToBeReturned = image
            })
        }
        return imageToBeReturned
    }
}

这样-

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let selectedImage = UIImage.from(info: info) {
        // I am happy :)
    } else {
        // I am sad :(
    }
    dismiss(animated: true, completion: nil)
}

这对我有用,请提出任何改进建议:)

This is working for me, please do suggest any improvements :)

这篇关于UIImagePickerControllerOriginalImage 在 ios 11.2.1 中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆