有没有办法在多个设备上唯一访问 iCloud 相册中的特定
PHAsset
?
我编写了一个简单的应用程序,列出了 iCloud 共享相册中的缩略图和
.localIdentifier
,并且(自然地)它在不同设备上显示相同的图像,但是,不同设备上相同图像的 localIdentifiers 不同(不是这样)意外,因为它是“本地”标识符)。
但是,我实际上想做的是将云共享 CoreData 数据库中的记录与云中的图像相关联,而不是将图像嵌入到 CoreData 中(它是一个家谱应用程序,可能包含数千个图像) - 为此我需要一个无论设备如何都是唯一的标识符。有办法做到这一点吗?
PHAsset.cloudIdentifier
可作为私有 API 使用。
let identifier = phAsset.value(forKey: "cloudIdentifier") as? String
参考iOS运行时头:https://github.com/JaviSoto/iOS10-Runtime-Headers/blob/master/Frameworks/Photos.framework/PHAsset.h
不幸的是没有。在早期的 iOS 8 测试版中,有一个云标识符(这正是您所寻找的),但后来从照片 API 中删除了。
要更新旧问题/答案,PHCloudIdentifier 自 iOS 15 以来一直是用于此目的的公共 API。