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

时间:2018-03-10 15:05:26

标签: ios swift xcode cocos2d-iphone

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

谢谢,

2 个答案:

答案 0 :(得分:3)

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

要从特定相册中删除资源,您需要使用PHAssetCollectionChangeRequest创建request对象(例如album),然后删除asset request使用方法removeAssets的帮助。

<强>示例

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)
    }

答案 1 :(得分:0)

您可以过滤选定的相册并删除相册,如下所示

  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)
             }
         }