[英]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.