如何在 IOS 中查找照片资产的标识符

Posted

技术标签:

【中文标题】如何在 IOS 中查找照片资产的标识符【英文标题】:How to find identifier of a photo asset in IOS 【发布时间】:2015-12-12 06:27:08 【问题描述】:

我正在编写一个应用程序,该应用程序保存存储在自定义相册中的照片并将其他信息与对象相关联。然后将该对象保存在核心数据中。我想在对象中存储对照片的引用。是否有可用或可以派生的唯一标识符。我需要能够访问照片。我正在使用照片框架。

【问题讨论】:

【参考方案1】:

请记住,当 iOS 更新时,localIdentifier 可能会发生变化,在这种情况下,您在本地保存的任何值都将变得无用。

查看this other question了解更多信息。

【讨论】:

localIdentifiers 在设备上永远不会改变。我的应用 #pictagger 自 2015 年起就在应用商店中,从那时起 localidentifier 没有任何变化。【参考方案2】:

Photos 框架中的所有东西都是 PHObject,PHObject 类根据其 localIdentifier 属性实现 isEqual: 和 hash 方法,您可以使用依赖于这些方法的技术来跟踪照片实体。

var localIdentifier: String  get 

永久标识对象的唯一字符串

【讨论】:

谢谢。我还是一头雾水。成功保存照片后,PHAsset中返回的属性是照片的标识? 我将您的问题解释为“我可以将 localIdentifier 数组存储在核心数据中。我以后如何使用存储在 coredata 中的 localIdentifier 检索该照片?”您可以使用 PHAsset 中的 fetchAssetsWithLocalIdentifiers 来检索具有指定本地设备特定唯一标识符的资产。 我需要帮助来确定如何提取需要存储在 localIdentifier 中的标识符。我被困在一个基本的水平。 我认为您对 localIdentifier 的想法是错误的。您可以从 PHObject 获取值 localIdentifier 并将该字符串值存储到本地数据库,然后使用该本地数据库唯一存储的字符串来访问您需要的 PHAsset使用方法。

以上是关于如何在 IOS 中查找照片资产的标识符的主要内容,如果未能解决你的问题,请参考以下文章

iOS 如何从相机加载照片以解析 Swift

iOS 照片框架:如何将图像资源恢复为原始图像

iOS 8 照片库 - 使用 PHAssetChangeRequest 添加资产时出错

如何从 MacOS 的照片库中获取所有 PHAsset

如何确定 iOS 设备的视频播放能力?

我如何知道资产库中存在 ALAsset 的 NSURL?