ios - 使用照片框架从照片库中删除照片

标签 ios swift photo phasset phphotolibrary

我正在编写一个相册应用程序,它可以访问用户照片库中的照片、添加过滤器和删除照片。我使用 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)

还是不行,报错是:

Could not cast value of type 'PHAsset' to 'NSFastEnumeration'

有人知道怎么处理吗?谢谢!

最佳答案

线索就在名称“assets”的复数中——API 需要一个数组或任何其他符合 NSFastEnumeration 的集合类型,例如 Set

PHAssetChangeRequest.deleteAssets([assetToDelete] 作为 NSArray)

https://developer.apple.com/documentation/photos/phassetchangerequest/1624062-deleteassets

关于ios - 使用照片框架从照片库中删除照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46884136/

相关文章:

iphone - iOS JSONKit objectWithData 返回 null

swift - 如何停止刷新水龙头?

IOS Safari URL UTI 分享表

facebook-graph-api - ios sdk facebook graph api,无法将图像发布到facebook页面

ios - 有时,当应用程序在 iOS 中被用户杀死时,应用程序不会发出 iBeacon 通知

ios - iOS11中,如何让后台任务运行超过10分钟?

ios - 支持旧版本的 iOS

ios - 如何在代码中设置 NSLayoutConstraint 常量的变体?

ios - 使用 super.init 使用 xib 创建自定义 View 的目的是什么?

java - 如何从磁盘复制特定文件