Tatsächlich können Sie Fotos löschen, die von Ihrer App gespeichert wurden (gespeichert in der Fotobibliothek mit dem Aufruf von UIImageWriteToSavedPhotosAlbum API).
Die dokumentierte API [ALAsset setImageData:metadata:completionBlock:]
funktioniert.
1). Fügen Sie Ihrem Projekt ein Bild "photo.jpg" hinzu
2). Speichern Sie ein Bild in der Asset-Bibliothek:
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). Gehe zur Standardgalerie, du wirst photo.jpg in deinem Album "Gespeicherte Fotos" finden.
4). Löschen Sie dieses Bild aus der Objektbibliothek:
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). Gehe zur Standardgalerie, du wirst feststellen, dass photo.jpg bereits gelöscht wurde.
Können wir nicht fordern Sie eine Löschung Fotos Framework? Ich denke, ja, wir können. –
PHAssetChangeRequest.deleteAssets ([AssetToDelete]) –
https://developer.apple.com/documentation/photos/phassetchangerequest/1624062-deleteassets –