Je suis en train d'écrire une application de test pour voir s'il est possible de supprimer un élément "photothèque" dans iOS 8, en utilisant le cadre Photos. Bien que je soupçonne que ce n'est pas possible, je trouve que la documentation n'est pas claire, et il y a des articles sur ce site qui semblent indiquer que c'est possible. Voir here par exemple.Suppression d'un élément de transfert de photos à l'aide du cadre Photos
Dans mon application test, je prends un atout de la bibliothèque:
var picker = UIImagePickerController()
picker.sourceType = UIImagePickerControllerSourceType.PhotoLibrary
picker.mediaTypes = [kUTTypeMovie]
Dans le rappel des délégués, je reçois le NSURL de l'actif, et le mettre dans un tableau:
let thePicked = info[UIImagePickerControllerMediaURL] as NSURL!
var videosToDelete: [NSURL] = [theURL]
et voici la partie que je suis moins confiant au sujet, où je reçois la phoTolibrary, et faire une demande de modification pour supprimer l'actif:
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
let assetToDelete = PHAsset.fetchAssetsWithALAssetURLs(videosToDelete, options: nil)
PHAssetChangeRequest.deleteAssets(assetToDelete)
},
completionHandler: { success, error in
NSLog("Finished deleting asset. %@", (success ? "Success" : error))
})
Le gestionnaire d'achèvement renvoie avec succès, mais l'actif n'est jamais supprimé. Est-ce que je fais quelque chose de mal? Ou est-ce que j'essaie de faire quelque chose qui n'est pas autorisé de manière inhérente, et je ne reçois pas le feedback correct pour cela?
Merci, @ andrew-paul-simmons. 1) est correcte, comme indiqué dans le code ci-dessus; 2) est légèrement différent: l'actif ne supprime pas, il reste dans le rouleau de la caméra, en place. Je peux cependant le supprimer (en utilisant l'application photos), il va dans le dossier "récemment supprimé". Je suis en train de tester cela en utilisant un élément vidéo créé (avec l'appareil photo) par la même application. – coco