Swift 我能';t使用PHPhotoLibrary删除带有照片的自定义相册
我很难想出如何删除我的应用程序制作的自定义相册及其照片。注意:我可以删除相册,但不能将其与照片一起删除 我所基于的代码来自STACKOVERFLOW:它可以工作,但它会删除相机卷中的所有照片Swift 我能';t使用PHPhotoLibrary删除带有照片的自定义相册,swift,Swift,我很难想出如何删除我的应用程序制作的自定义相册及其照片。注意:我可以删除相册,但不能将其与照片一起删除 我所基于的代码来自STACKOVERFLOW:它可以工作,但它会删除相机卷中的所有照片 func deleteAllPhotos() { let library = PHPhotoLibrary.shared() library.performChanges({ let fetchOptions = PHFetchOptions() let al
func deleteAllPhotos() {
let library = PHPhotoLibrary.shared()
library.performChanges({
let fetchOptions = PHFetchOptions()
let allPhotos = PHAsset.fetchAssets(with: .image, options: fetchOptions)
PHAssetChangeRequest.deleteAssets(allPhotos)
}) { (success, error) in
// Handle success & errors
}
}
我基于上述代码修改的代码:
let fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: "title = %@", albumName)
let assetCollections = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .any, options: fetchOptions)
let album: PHAssetCollection = assetCollections.firstObject!
let allPhotos = PHAsset.fetchAssets(with: .image, options: fetchOptions)
PHPhotoLibrary.shared().performChanges({
guard let albumChangeRequest = PHAssetCollectionChangeRequest(for: (album)) else { return }
let fastEnumeration = NSArray(array: [allPhotos])
albumChangeRequest.removeAssets(fastEnumeration)
}, completionHandler: { success, error in
if success {
print("removed")
} else {
print("not removed")
}
})
错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“获取选项中不支持的谓词:title==”albumName“
诀窍是将
中的与相册
一起用于获取资产
:
let allPhotos = PHAsset.fetchAssets(in: album!, options: nil)
PHAssetChangeRequest.deleteAssets(allPhotos)
诀窍是将中的与相册
一起用于获取资产
:
let allPhotos = PHAsset.fetchAssets(in: album!, options: nil)
PHAssetChangeRequest.deleteAssets(allPhotos)
显然没有人知道答案,我想我会自己解决。显然没有人知道答案,我想我会自己解决。