繁体   English   中英

如何删除添加在特定相册中但不在其他相册中的照片?

[英]How to delete photos added in specific albums but not in others?

我想知道 swift 和 xcode:如何删除添加在特定相册中而不是其他相册中的照片。 例如添加在相机胶卷中但不在其他相册中的照片? 原则上我知道,苹果只把它作为其他相册相册中同一张照片的参考链接,所以如果在其中一个删除,您将在所有其他相册中删除。 但是有没有可能绕过它? 例如将其作为文件副本复制到具有不同名称的新专辑? 任何人都知道如何解决它?

谢谢,

您可以使用Photos框架从特定相册中删除照片。 您需要该相册的PHAssetCollection对象(例如album )和属于该专辑的照片(例如asset )的PHAsset

为了从特定专辑中删除资产,您需要使用该album创建PHAssetCollectionChangeRequest对象(比如request ),然后在request的帮助下使用removeAssets方法删除asset

样品

let album : PHAssetCollection = /*Your album object*/
let asset : PHAsset = /*Your Asset belongs to album*/
PHPhotoLibrary.shared().performChanges({
        guard let request = PHAssetCollectionChangeRequest(for: album) else {
            return
        }
        request.removeAssets([asset] as NSArray)
    }) { (result, error) in
        print("completionBlock",result, error)
    }

您可以过滤所选专辑并删除专辑,如下所示

  if let assetCollection = album.filter({$0 == selectedAlbum}).first?.collection{
     PHPhotoLibrary.shared().performChanges({
       PHAssetCollectionChangeRequest.deleteAssetCollections([assetCollection] as NSArray)
        }, completionHandler: { (success, error) in
            if success {
               //enter code here
               Print("Successfully Deleted")
             }
            else if error = error {
              //enter error handler code here
              print(error)
             }
         }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM