迭代 PHAsset 以获取 Image Identifcator Swift

Posted

技术标签:

【中文标题】迭代 PHAsset 以获取 Image Identifcator Swift【英文标题】:Iterate PHAsset to obtain the Image Identifcator Swift 【发布时间】:2016-11-15 18:35:09 【问题描述】:

我正在学习 PHAsset - Swift 中的照片,当我获得所有选定的照片并在控制台上打印返回的对象时:

Finish: **[<PHAsset: 0x10205cb20> A7BE6AF3-3402-484C-8C21-CAE3A6CA9AB0/L0/001 mediaType=1/0, sourceType=1, (255x199), creationDate=4501-01-01 6:00:00 a.m. +0000, location=0, hidden=0, favorite=0 , <PHAsset: 0x10207de00> 8450D61E-1DA8-4F11-A9BC-2CC8425D201C/L0/001 mediaType=1/0, sourceType=1, (459x387), creationDate=2016-11-15 2:22:11 p.m. +0000, location=0, hidden=0, favorite=0 , <PHAsset: 0x10207dcb0> 59DA604E-81EF-4A78-AF06-1E2771775D4C/L0/001 mediaType=1/0, sourceType=1, (480x480), creationDate=2016-11-15 6:15:03 a.m. +0000, location=0, hidden=0, favorite=0 ]**

在我选择的 3 张照片中,我完全不确定它是如何工作的,我想将信息保存在一个数组中以检索该信息。

您能提供任何建议吗?我该如何迭代该对象?

感谢和问候。

【问题讨论】:

一个数组,所以很难看出你在问什么。也许如果您显示您的代码,问题的性质会更清楚。 抱歉,这是一个 PHAsset 集合,我想将标识符保存在我自己的数组中,例如“A7BE6AF3-3402-484C-8C21-CAE3A6CA9AB0/L0/001”,它是照片的 ID,但我无法访问。整个 Objet 给了我: [ A7BE6AF3-3402-484C-8C21-CAE3A6CA9AB0/L0/001 mediaType=1/0, sourceType=1, (255x199), creationDate=4501-01-01 6:00: 00 a.m. +0000, location=0, hidden=0, favorite=0] 查看我之前的回答 here 关于如何获取和使用 PHassets。它在 Obj C 中,但对于能够理解 Swift 的人来说应该不难理解。当然,忽略关于日期范围的谓词 【参考方案1】:

当您执行 fetch 时,您得到的是 PHFetchResult。你可以这样循环:

for ix in 0..<result.count 
    let asset = result[ix]
    // do something with the asset

因此您可以在该循环中构建一个唯一标识符数组。

【讨论】:

以上是关于迭代 PHAsset 以获取 Image Identifcator Swift的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHFetchOptions.predicate 从 PHAssetCollection 获取 PHAsset 的问题

从 PHAsset 获取视频时如何检测视频是不是为横向/纵向?

如何检索 PHAsset 的元数据?

从 PHAsset 加载图像非常慢

用于反应本机应用程序的 PHAsset 图像 URI

如何使用 Swift 通过 PHAsset 访问 UIImage 的元数据