iOS 8、PhotoKit、PHAsset、唯一标识符

Posted

技术标签:

【中文标题】iOS 8、PhotoKit、PHAsset、唯一标识符【英文标题】:iOS 8, PhotoKit, PHAsset, unique identifier 【发布时间】:2015-03-02 02:13:08 【问题描述】:

使用 ios 8 的应用程序并处理大量照片,我需要唯一标识 PHassets 但找不到任何要使用的属性?我找到了一处房产 上

 PHObject/localIdentifier

在此记录

https://developer.apple.com/library/ios/documentation/Photos/Reference/PHObject_Class/index.html#//apple_ref/occ/instp/PHObject/localIdentifier

有没有办法在 PHAsset 上拥有一个唯一的 ID? PHObject 使用起来有点重。

【问题讨论】:

【参考方案1】:

是的,这是唯一要使用的属性。

但是,PHObject 实现了 -hash-isEqual: 方法。它还符合NSCopying 协议,这意味着它可以用作字典中的键,可以放入集合等。当您重新加载PHAsset 对象时,它也继续工作。这是对ALAsset 班级的巨大胜利。 -isEqual 的实现比localIdentifier 属性快得多,可以安全地在主线程上使用。您可以使用分析器来了解内部情况。

【讨论】:

嗨,PHAsset 确实有 .hash 属性,但我需要实现自己的 isequal 吗?用于 PHAsset? 不,PHAsset 实现了这两者,以及 NSCopying 协议。

以上是关于iOS 8、PhotoKit、PHAsset、唯一标识符的主要内容,如果未能解决你的问题,请参考以下文章

iOS PhotoKit框架 详解

iOS PhotoKit 教程

iOS PhotoKit 教程

在 PhotoKit 中,修改 PHAsset 会留下原始的。如何?可覆盖?

如何解决 PhotoKit 错误“原始资源选择仅对未调整的基础版本有效”?

使用 UIActivityViewController 共享存储在相机胶卷中的 PHAsset