从照片库中删除图像

2023-12-12

在我的应用程序中,我有一个功能可以将图像保存到在照片库中创建的自定义收藏相册中:

func save(image: UIImage) {
    if assetCollection == nil {
        return
    }
    PHPhotoLibrary.shared().performChanges({
        let assetChangeRequest = PHAssetChangeRequest.creationRequestForAsset(from: image)
        let assetPlaceHolder = assetChangeRequest.placeholderForCreatedAsset
        let albumChangeRequest = PHAssetCollectionChangeRequest(for: self.assetCollection)
        let enumeration: NSArray = [assetPlaceHolder!]
        albumChangeRequest!.addAssets(enumeration)
    }, completionHandler: nil)
}

UIImages是用户在以前的VC中创建的。此外,它们还保存到文档目录中,然后在单独的 VC 上的集合视图中显示在我的应用程序中。

稍后用户可以选择所需的照片,然后将其显示在新的 VC 中,并通过单击“垃圾桶”选项卡按钮将其删除。按下按钮时,图像将从文档目录中删除,因此它也会从集合视图中消失。

我想要实现的是同时从照片库中删除这张照片。因此,当用户单击“垃圾箱”按钮时,也会从文档目录和照片库中删除所选照片。

到目前为止我所取得的成果 - 创建了获取图像 URL 的函数,并根据该 url 删除项目,就像我对文档目录所做的那样:

func deleteSelectedPhotoFromGallery() {
    PHPhotoLibrary.shared().performChanges({
        let imageAssetToDelete = PHAsset.fetchAssets(withALAssetURLs: self.loadURL() as! [URL], options: nil)
        PHAssetChangeRequest.deleteAssets(imageAssetToDelete)
    })
}

编辑:这就是我获取网址的方式:

func loadURL() -> [NSURL?]? {
    let retrievedData = UserDefaults.standard.object(forKey: DefaultKeys.imagesURL.rawValue) as? [String]
    return retrievedData?.map { NSURL(string: $0) }
}

问题:

  • fetchAssets(withALAssetURLs) - 将被弃用,用什么代替?
  • 如何获取正在保存到照片库的图像 URL?

基本上,我需要一些方法来从之前保存的照片库中删除图像。我想知道您是否可以在保存图像时检测到图像 URL 或路径,然后将其路径存储到 UserDefaults 中,然后使用其路径或 URL 删除它。

之前有关于这个问题的问题,但他们使用 ImagePicker 来检测图像 URL 以及在 objc 中编写的位置,但我希望快速找到一个解决方案,而不使用 ImagePicker。

Thanks.


fetchAssets(withALAssetURLs) - 将被弃用,用什么代替? 如何获取正在保存到 PhotoLibrary 的图像 URL?

你不知道。这就是它被弃用的原因!您获得资产的localIdentifier。这允许您访问该资产并稍后将其删除。

您的完成处理程序为空。那就是问题所在。编写完成处理程序并从占位符获取本地标识符。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从照片库中删除图像 的相关文章

  • 在 iOS 7 中查看 Core Data 创建的 sqlite 文件时出现问题

    当我尝试访问由核心数据创建的数据库文件时遇到问题 DB 文件位于 Documents 文件夹中 我已将其复制到桌面并使用 Firefox 插件打开它 Hello sqlite文件不包含任何行我有使用核心数据插入值 我正在使用 iOS 7 模
  • UICollectionView 设置列数

    我刚刚开始学习 UICollectionViews 我想知道是否有人知道如何指定集合视图中的列数 默认设置为 3 iPhone 肖像 我查看了文档 似乎找不到简洁的答案 对于 Swift 5 和 iOS 12 3 您可以使用4 以下实现为了
  • 更改目录时 Gitlab CI 运行程序作业失败退出状态 1

    我正在使用我的个人机器作为使用 Fastlane 的 iOS 项目的运行程序 这主要是因为共享运行器没有为 iOS 设置 因为它们没有安装 Xcode 更改目录时我的作业立即失败 它是一个 shell 运行程序 根本没有其他自定义配置 有什
  • Swift 语言中的 #ifdef 替换

    在 C C Objective C 中 您可以使用编译器预处理器定义宏 此外 您可以使用编译器预处理器包含 排除代码的某些部分 ifdef DEBUG Debug only code endif Swift 中有类似的解决方案吗 是的 你可
  • 如何使用逗号和行分隔符对字符串进行标记

    我正在 Swift 中制作一个简单的 String Tokenizer 就像在 Java 中一样 但这对我来说确实不起作用 我的数据源中每行的末尾用 分隔 数据用逗号分隔 例如 字符串 1 字符串 2 字符串 3 字符串 1 字符串 2 字
  • 使用 JSONKit 解析 JSON 文件

    我正在构建一个音叉应用程序 货叉应允许最多 12 个预设节距 此外 我希望允许用户选择一个主题 每个主题都会加载一组预设 不必使用所有预设 我的配置文件看起来像这样 theme A3 comment An octave below conc
  • Swift 中计算只读属性与函数

    在 Swift WWDC 简介会话中 只读属性description被证明 class Vehicle var numberOfWheels 0 var description String return numberOfWheels wh
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • Android:将图像裁剪为特定尺寸

    我的目的是让用户从图库中选择一张图像 然后进行裁剪活动 但是 我需要将定义裁剪蒙版的矩形锁定到某个尺寸 然后用户只需重新定位它即可显示图像的一部分 关于如何做到这一点有什么想法吗 Thanks T Intent intent new Int
  • Bing 图像搜索 API 按图像大小过滤

    我正在使用 jsonp 和 jquery ajax 来使用 Bing 图像搜索 API 我能够检索搜索结果 但我无法找到按图像大小过滤结果的方法 我在文档中找不到任何与此相关的内容 有谁知道是否有一种方法可以按图像大小过滤结果或对此进行任何
  • 广告标识符和标识符ForVendor返回“00000000-0000-0000-0000-000000000000”

    我已经实现了这个方法来获得advertisingIdentifier and identifierForVendor NSString advertisingIdentifier if NSClassFromString ASIdentif
  • 如何在启用抗锯齿的情况下旋转可绘制对象

    我需要将 ImageView 旋转几度 我通过子类化 ImageView 和重载来做到这一点onDraw Override protected void onDraw Canvas canvas canvas save canvas sca
  • 在电子邮件中嵌入背景图像

    我正在尝试使用电子邮件中的嵌入图像作为背景图像 我有以下代码来嵌入它 LinkedResource backgroundLink new LinkedResource background gif backgroundLink Conten
  • 使用 PDFOutline 将 TOC 添加到 Swift/Cocoa 中的 PDFDocument

    我正在开发一个小程序 将多个单页 PDF 合并到一个多页 PDF 中 我正在 Swift4 MacOS Cocoa 中工作 但我一生都无法在 Swift 中找到任何类型的示例来创建大纲 仅遍历现有的大纲 我对此非常熟悉 使用对文档的最佳猜测
  • 从 URL 任何文件类型创建图像

    我知道imagecreatefromgif https www php net manual en function imagecreatefromgif php imagecreatefromjpeg https www php net
  • 将 NSFetchedResultsController 添加到项目后出现问题

    我设置 CoreData 时没有NSFetchedResultsController一切都保存得很好 切换到之后NSFetchedResultsController 我在尝试保存图像时遇到奇怪的错误 这是我用来保存图像的代码 void sa
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • 如何在 SwiftUI 中延迟动画?

    我想为两个文本字段设置动画 第二个字段有延迟 但它不起作用 没有延迟 它们同时从位置 100 动画到 0 这是代码 State private var offset CGFloat 100 State private var offset2
  • 获取所有ios应用程序的全局列表[重复]

    这个问题在这里已经有答案了 我想对苹果应用商店进行一些全球统计 一个瓶颈是至少获取所有当前活动应用程序的 ID 这 9 位数字 有谁知道如何获取 iOS 应用商店中当前活动应用程序的所有 id 的完整列表 更好的是特定类别的所有 ID 例如
  • 如何制作像 Facebook 应用程序一样的登录屏幕?

    如何制作像 Facebook 应用程序一样带有 电子邮件 和 密码 文本字段的登录屏幕 Facebook登入 http extdesenv com wp content uploads 2012 05 facebook login ios

随机推荐

  • 找到 setTimeout() 中剩余的时间?

    我正在编写一些与我不拥有的库代码交互的Javascript 并且无法 合理地 更改 它创建 Javascript 超时 用于显示一系列限时问题中的下一个问题 这不是真正的代码 因为它被完全混淆了 这是图书馆正在做的事情 setup a ti
  • 帮助推文媒体实体

    我刚刚发现推文实体 我想将其添加到我的推文中 我已经读了一遍又一遍的API 但我仍然无法让它工作 这就是我所拥有的 entities array media url gt picture url url gt short url type
  • g++:如何整理导出的符号

    我正在尝试编译一个使用 JNI 的 Java 库 当我启动程序时 我看到崩溃并出现 UnsatisfiedLinkError 它表示在 DLL 中找不到特定方法 经过仔细检查 我发现我用于编译和链接的 g 通过在方法名称中添加 8 或 16
  • 分配的指针字段变为

    我有一个结构 type user struct Id string data ptr userData 我在全局范围内存储用户的一部分 type Hall struct users user var hall Hall global 最后
  • 使用 AVX2 向量化随机初始化并使用十进制数字数组打印 BigInt?

    如何将我的代码传递给 AVX2 代码并获得与以前相同的结果 是否可以使用 m256i在 LongNumInit 中 LongNumPrint 函数代替uint8 t L 或某种类似类型的变量 我对 AVX 的了解相当有限 我调查了很多 但是
  • 当我写入超出数组末尾时,为什么不会出现分段错误?

    为什么我编译时没有给出错误 include
  • 朱莉娅,加速评估

    Julia 有一个非常好的功能 可以访问自己的语法树 这使得以编程方式生成新函数变得很容易 但它比普通的 Julia 代码慢得多 例如 julia gt timing time for i in 1 100 tan pi 2 rand en
  • 如何在目标C中以相反的顺序显示数组[重复]

    这个问题在这里已经有答案了 我想以相反的顺序在 UITableView 中显示数据 我几乎不费吹灰之力就能做到这一点 但任何人都可以提供更好的方法来做到这一点 提前致谢 Use NSArray reverseObjectEnumerator
  • 计算两个Python字典中包含的键的差异

    假设我有两个 Python 字典 dictA and dictB 我需要查明是否存在任何密钥dictB但不在dictA 最快的方法是什么 我应该将字典键转换为一组然后继续吗 有兴趣了解您的想法 感谢您的回复 抱歉没有正确陈述我的问题 我的情
  • 合并 R 列表中的字符串向量

    我有一组字符串以及 ID string 格式的相应 ID 作为向量列表R d lt list c SD1 LUSH SD44 CANCEL SD384 FR563 SD32 TRUMPET c SD23 SWITCH SD1 LUSH SD
  • 如何销毁 缓存的 VueJS 组件

    我有一个 Vue 组件 它使用 Vue 的元素进行缓存以保持活动状态 然而 我现在遇到的问题是 一旦我退出一个帐户并在我的 Vue 应用程序上创建一个新帐户 我 保持活动状态 的组件就会反映给新用户 这显然不是与新用户相关 因此 我想在用户
  • Ninject 基于属性值的条件绑定

    我在使用 ninject 定义绑定时遇到问题 我正在使用标准 ASP NET WebForms 应用程序 我已经定义了一个 http 处理程序来在页面和控件中注入依赖项 属性注入 这是我正在尝试做的事情 我正在创建一个自定义组合框用户控件
  • 测试线程优先级。为什么在某些情况下低优先级线程更快?

    我正在尝试测试 2 个线程 一个具有高优先级 另一个具有低优先级 根据我的结果 有时低优先级线程更快 这怎么可能 我通过增加每个线程内的点击变量来测试不同优先级的线程 我也增加或减少了睡眠时间 但没有任何效果 由于我在后台没有运行繁重的程序
  • TCPDF 错误:无法在预期位置找到对象 (8, 0)

    我在使用 TCPDF 和 FPDI 从扫描的 pdf 中删除页面时遇到错误 其他pdf工作正常 ERROR Unable to find object 8 0 at expected location 您的文件可能已损坏 有些扫描仪会生成损
  • 覆盖 HttpClient 中的主机

    我正在使用 HttpClient 但它在 DNS 解析方面存在问题 它为此使用同步方法 因此我使用另一个库来执行 DNS 查询 现在我尝试通过 IP 获取自定义 url 但我需要替换 Host 标头 例如我有网址http fb com但我需
  • 极坐标对列表列中的元素进行计数

    我有带列的数据框b对于列表元素 我需要创建列c计算列表中每一行的元素数量 这是 Pandas 中的玩具示例 import pandas as pd df pd DataFrame a 1 2 3 b 1 2 3 2 5 0 a b 0 1
  • 使用逗号格式化 JTable 列单元格中的整数

    我有一个 Price 列 以普通格式显示整数 如 1000000 我想知道如何使用逗号格式化它 而不影响使用 table getValueAt 检索时的值 有没有像 table setColumnCellFormat decimalForm
  • URL 正则表达式由 regex buddy 传递但由 Dart 失败

    我在 JavaScript 正则表达式中有以下正则表达式 https ftp A Z0 9 A Z0 9 A Z0 9 它尝试验证并清空空格或 URL 然而当我尝试在 Dart 中使用它时RegExp 使用 Perle 风味正则表达式 它不
  • 如何访问 AS3 中的 flashvars,并将它们添加到现有文本字段?

    编辑 我开始意识到我面临的主要问题是我想要一个已经存在于影片剪辑或舞台上的文本字段来从 flashvar 中获取字符串 由于某种原因它不会这样做 如何更改预先存在的文本字段以匹配 flashvar 文本 Html div div
  • 从照片库中删除图像

    在我的应用程序中 我有一个功能可以将图像保存到在照片库中创建的自定义收藏相册中 func save image UIImage if assetCollection nil return PHPhotoLibrary shared perf