从照片库中删除资产

Posted

技术标签:

【中文标题】从照片库中删除资产【英文标题】:Delete an asset from Photos library 【发布时间】:2015-10-28 11:32:19 【问题描述】:

我已经开始研究文档目录和照片库。到目前为止,我能够做的事情是:

将文件保存在“照片”中。

从“照片”中获取文件。

从文档目录访问文件。

保存文档目录中的文件。

现在我面临的问题是从“照片”库中删除资产。该怎么做?

我在 Apple 文档中读到我应该使用“PHAssetCollectionChangeRequest”类。于是我写了如下代码:

 [[phphotoLibrary sharedPhotoLibrary] performChanges:^
    PHAssetCollectionChangeRequest *chng = [PHAssetCollectionChangeRequest new];
    NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:528];
    [chng removeAssetsAtIndexes:indexSet];

   // [PHAssetChangeRequest creationRequestForAssetFromImage:[UIImage imageNamed:@"abc.png"]];

         completionHandler:^(BOOL success, NSError *error)

    if (success) 
        NSLog(@"Success");
    
    else 
        NSLog(@"write error : %@",error);
    

];

但它什么也没做。我可以得到一些代码吗?

【问题讨论】:

【参考方案1】:

我认为你必须使用 deleteAssets

[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
    [PHAssetChangeRequest deleteAssets:yourArrayOfAssets];
    //yourArrayOfAssets is an array of PHAsset objects
 completionHandler:^(BOOL success, NSError *error) 

];

【讨论】:

这就是我一直在做的,但是我如何声明一个 PHAsset 数组。所有 PHAsset 对象都收集在 PHRequestFetch 中。所以当我在上述方法中传递该数组的任何索引时,程序崩溃.

以上是关于从照片库中删除资产的主要内容,如果未能解决你的问题,请参考以下文章

使用照片框架删除相机胶卷资产

使用照片框架从照片库中删除照片

PHAssetRequestChange deleteAsset 也不会删除照片流资产

从资产中获取实际图像名称

需要将 .MP4 文件从文档文件夹保存到照片库,但资产 url 返回 nil

快速检测从照片库中删除的图像