I want to delete PHAssets at once. I wrote the code below, but it is deleted, but there is a problem that the number of alerts is selected. Couldn't the alert appear only once?
@IBAction func deleteBtnAction(_ sender: Any) {
for (key, value) in dictionarySelectedIndexPath {
if value {
deletedNeededIndexPath.append(key)
}
}
for i in deletedNeededIndexPath.sorted(by: { $0.item > $1.item}) {
sortedAlbum(true)
guard let asset : PHAsset = self.fetchReuslt?.object(at: i.item) else { return }
let assetArray : NSArray = [asset]
PHPhotoLibrary.shared().performChanges({PHAssetChangeRequest.deleteAssets(assetArray)}, completionHandler: nil)
}
AssetCollectionView.deleteItems(at: deletedNeededIndexPath)
}
I think it's because of for in. So I rewritten as below, but the message [PhotoKit] No photos access scope requirements declared for changes came out. Why is that?
@IBAction func deleteBtnAction(_ sender: Any) {
for (key, value) in dictionarySelectedIndexPath {
if value {
deletedNeededIndexPath.append(key)
}
}
var assetArray : NSArray = []
for i in deletedNeededIndexPath.sorted(by: { $0.item > $1.item}) {
sortedAlbum(true)
guard let asset : PHAsset = self.fetchReuslt?.object(at: i.item) else { return }
assetArray.addingObjects(from: [asset])
}
PHPhotoLibrary.shared().performChanges({PHAssetChangeRequest.deleteAssets(assetArray)}, completionHandler: nil)
AssetCollectionView.deleteItems(at: deletedNeededIndexPath)
}