In realtà, è possibile eliminare le foto salvate dalla propria app (salvate nella libreria fotografica con UIImageWriteToSavedPhotosAlbum API call).
L'API documentata [ALAsset setImageData:metadata:completionBlock:]
funziona.
1). Aggiungi un'immagine "photo.jpg" al tuo progetto
2). Salvare un'immagine nella libreria delle risorse:
ALAssetsLibrary *lib = [ALAssetsLibrary new];
UIImage *image = [UIImage imageNamed:@"photo.jpg"];
[lib writeImageToSavedPhotosAlbum:image.CGImage metadata:@{} completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"Write image %@ to asset library. (Error %@)", assetURL, error);
}];
3). Vai alla galleria di default, troverai foto.jpg nel tuo album "Foto salvate".
4). Eliminare questa immagine dalla libreria delle risorse:
ALAssetsLibrary *lib = [ALAssetsLibrary new];
[lib enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
[group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop) {
if(asset.isEditable) {
[asset setImageData:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
NSLog(@"Asset url %@ should be deleted. (Error %@)", assetURL, error);
}];
}
}];
} failureBlock:^(NSError *error) {
}];
5). Vai alla galleria di default, troverai foto.jpg è già stato eliminato.
non possiamo richiedere un cancellazione usando Foto quadro? Penso, sì, possiamo. –
PHAssetChangeRequest.deleteAssets ([assetToDelete]) –
https://developer.apple.com/documentation/photos/phassetchangerequest/1624062-deleteassets –