我正在构建一个应用程序,通过照片应用程序的云共享相册在 iOS/macOS 用户之间共享照片。我需要用一些带有应用程序特定参数的数字来描述每张照片。
我研究了几个想法,但没有一个奏效:
将数字(或字符串)写入 EXIF 或 IPTC 元数据字段
- 遗憾的是,Apple 云共享相册不包含用户可写的元数据字段
在照片文件名中插入数字,例如
IMG_1234-i1-i2-...-iN.JPEG
- 很遗憾,我找不到在“照片”应用中更改照片文件名的方法。
将整数与照片标识符一起并行保存在 iCloud 中,因此可以使用照片标识符在每台设备上检索数据
- 我假设
PHObject.localIdentifier
在不同设备上读取的云共享相册中不持久。我没有检查这个,但是为什么identifier
会被称为local
?
- 我假设
iOS/macOS Photos 应用的云端共享相册中的照片是否可以绑定(bind)少量数据?
最佳答案
按照我在 this answer 中找到的私有(private) API 的描述我为 PHAsset 创建了以下扩展:
extension PHAsset {
var cloudIdentifier: String {
return (self.value(forKey: "cloudIdentifier") as? String) ?? "?"
}
}
您现在可以从 PHAsset
实例获取的 cloudIdentifier
在共享同一相册的任何设备上的整个云中持久存在。使用持久性 PHAsset 标识符,可以从最初的问题中实现解决方案 #3。
关于ios - iOS/macOS云共享相册中如何给照片附加短数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57562286/