从自定义相册 PHPhotoLibrary 中删除图像 objective C

Delete Image from Custom Album PHPhotoLibrary objective C

在我的应用程序中,我使用编辑图片并保存在图库中名为 "Fab" 的自定义文件夹中。现在有什么可以从文件夹中删除该图像吗?我找到了不同的解决方案,但它们需要资产 URL。我使用了照片框架,所以如何获取要删除的特定图像的资产 url?

试试下面的代码

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];  

[library writeImageToSavedPhotosAlbum:[viewImage CGImage] orientation:(ALAssetOrientation)[viewImage imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){  
    if (error) {  
        NSLog(@"error");  
    } else {  
            NSLog(@"url %@", assetURL);  
    }  
}];  

将 return url 用于保存图像。

 PHAsset *tempPhasset = [_arrImageForAssetCameraRoll objectAtIndex:index]; // here pass your PHasset that you want to delete .
 NSString *localStr=tempPhasset.localIdentifier;
 NSRange range = [localStr rangeOfString:@"/"];
 NSString *newString = [localStr substringToIndex:range.location];
 NSString *appendedString=[NSString stringWithFormat:@"%@%@%@",@"assets-library://asset/asset.JPG?id=",newString,@"&ext=JPG"];
 NSLog(@"%@ phasset ",appendedString);
 NSURL *deleteurl = [NSURL URLWithString:appendedString];
 NSArray *arrDelete = [[NSArray alloc] initWithObjects:deleteurl , nil];
 PHFetchResult *asset = [PHAsset fetchAssetsWithALAssetURLs:arrDelete  options:nil];

 [asset enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
            NSLog(@"%@",[obj class]);
            [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
                BOOL req = [obj canPerformEditOperation:PHAssetEditOperationDelete];
                if (req) {
                    NSLog(@"true");
                    [PHAssetChangeRequest deleteAssets:@[obj]];
                }
            } completionHandler:^(BOOL success, NSError *error) {
                NSLog(@"Finished Delete asset. %@", (success ? @"Success." : error));
                if (success) {
                    NSLog(@"delete successfully");
                }else{
                    NSLog(@"delete Cancel");

                }
 }];

对我的代码有任何疑问然后发表评论。 快乐编码。