ios – 如何获取PHAsset的URL?

ios – 如何获取PHAsset的URL?,第1张

概述参见英文答案 > How to get an ALAsset URL from a PHAsset?                                    4个 我正在使用第三方库从照片库中选择多个图像.在选择多个图像时,它返回一组PHAsset对象. 现在,我想在核心数据中保存这些对象的URL(或一些引用).但我不知道如何获取URL.我可以在核心数据中存储任何其他参考资料,这可以 参见英文答案 > How to get an ALAsset URL from a PHAsset?4个
我正在使用第三方库从照片库中选择多个图像.在选择多个图像时,它返回一组PHAsset对象.
现在,我想在核心数据中保存这些对象的URL(或一些引用).但我不知道如何获取URL.我可以在核心数据中存储任何其他参考资料,这可以帮助我从照片库中获取相同的图像吗?解决方法 我使用了Hitesh surani的答案并且它工作得很完美,我把它转换成Swift 3.1并将其放入PHAsset的扩展中以便在任何地方使用该方法,这里是:
extension PHAsset {    func getURL(completionHandler : @escaPing ((_ responseURL : URL?) -> VoID)){        if self.mediaType == .image {            let options: PHContentEditinginputRequestoptions = PHContentEditinginputRequestoptions()            options.canHandleAdjustmentData = {(adjustMeta: PHAdjustmentData) -> Bool in                return true            }            self.requestContentEditinginput(with: options,completionHandler: {(contentEditinginput: PHContentEditinginput?,info: [AnyHashable : Any]) -> VoID in                completionHandler(contentEditinginput!.fullSizeImageURL as URL?)            })        } else if self.mediaType == .vIDeo {            let options: PHVIDeoRequestoptions = PHVIDeoRequestoptions()            options.version = .original            PHImageManager.default().requestAVAsset(forVIDeo: self,options: options,resultHandler: {(asset: AVAsset?,audioMix: AVAudioMix?,info: [AnyHashable : Any]?) -> VoID in                if let urlAsset = asset as? AVURLAsset {                    let localVIDeoUrl: URL = urlAsset.url as URL                    completionHandler(localVIDeoUrl)                } else {                    completionHandler(nil)                }            })        }    }}
总结

以上是内存溢出为你收集整理的ios – 如何获取PHAsset的URL?全部内容,希望文章能够帮你解决ios – 如何获取PHAsset的URL?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1103107.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存