2015-02-25 2 views
5

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?

Répondre

0

Permettez-moi que je comprends la question:

1) Vous utilisez le cadre de photos pour supprimer un actif avec PHAssetChangeRequest.deleteAssets (assetToDelete)

2) vous allez à l'application et à regarder la Photos récemment supprimées, mais vous ne voyez pas l'image/actif que vous venez de supprimer à la poubelle dans l'application photos. Si c'est ce que vous vivez, c'est parce que vous avez supprimé un actif qui n'est pas dans la pellicule de l'utilisateur mais qui est un PHAsst du flux de photos d'un autre appareil. Lorsque vous supprimez ces éléments, ils ne sont pas envoyés à la corbeille et sont supprimés différemment d'une photo normale. Je recommanderais d'aller à l'application de photos et de supprimer le même actif - si c'est un atout photostream, vous verrez qu'il ne va jamais dans la poubelle.

Si ce n'est pas le problème que vous rencontrez, veuillez essayer de fournir plus de détails.

+0

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