J'utilise une bibliothèque tierce pour sélectionner plusieurs images de la photothèque. En sélectionnant plusieurs images, il returnne un tableau d'objects PHAsset. Maintenant, je veux save l'URL (ou une reference) pour ces objects dans datatables de base. Mais je ne sais pas comment get l'URL. Y a-t-il d'autres references que je pourrais stocker dans datatables de base qui pourraient m'aider à aller chercher la même image dans la photothèque?
J'ai utilisé la réponse de Hitesh surani et cela a fonctionné parfaitement, je l'ai converti en Swift 3.1 et l'ai mis dans une extension de PHAsset afin d'utiliser cette méthode partout, ici c'est:
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) } }) } } }