我正在写一个相册应用程序,它可以从用户的照片库访问照片,添加滤镜和删除照片。我使用Photo框架删除了带有PHAssetChangeRequest.deleteAssets(assetToDelete)的 Assets 。
这里的 Assets 类别是PHAsset

// Delete the photo from library
@IBAction func deleteBtnPressed(_ sender: Any) {
        let assetToDelete = self.asset
        if let assetToDelete = assetToDelete
          {
            PHPhotoLibrary.shared().performChanges({
            PHAssetChangeRequest.deleteAssets(assetToDelete)
          })
        }
      }

但是这里发生错误,“参数类型'PHAsset'与预期类型'NSFastEnumeration'不符”。

所以我按照Xcode建议更改了assetToDelete的类型:
PHAssetChangeRequest.deleteAssets(assetToDelete as! NSFastEnumeration)

它仍然不起作用,错误表明:



有人知道如何处理吗?谢谢!

最佳答案

线索是“ Assets ”的复数形式-API需要一个符合NSFastEnumeration例如Set的数组或任何其他集合类型
PHAssetChangeRequest.deleteAssets([assetToDelete] as NSArray)
https://developer.apple.com/documentation/photos/phassetchangerequest/1624062-deleteassets

10-08 01:11