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