【问题标题】:Accessing iCloud photos uniquely on multiple devices using PHAsset使用 PHAsset 在多个设备上唯一地访问 iCloud 照片
【发布时间】:2016-05-07 03:17:23
【问题描述】:

有没有办法在多个设备上唯一地访问 iCloud 相册中的特定 PHAsset

我编写了一个简单的应用程序,它列出了 iCloud 共享相册中的缩略图和 .localIdentifiers,并且(自然)它在不同设备上显示相同的图像,但是,对于不同设备上的相同图像,localIdentifiers 是不同的(不是那么意外,因为它是一个“本地”标识符)。

但是,我真正想做的是将云共享 CoreData 数据库中的记录与云中的图像相关联,而不是将图像嵌入到 CoreData 中(它是一个家谱应用程序,可能包含数千张图像) -为此,无论设备如何,我都需要一个唯一的标识符。有没有办法做到这一点?

【问题讨论】:

    标签: icloud photosframework phasset


    【解决方案1】:

    很遗憾没有。在早期的 iO​​S 8 测试版中,有一个云标识符(这正是您要寻找的),但后来从照片 API 中删除了。

    【讨论】:

    • 肯定最终必须恢复?!?
    • 如果您想要此功能,我建议您在 bugreport.apple.com 提交错误报告/功能请求
    【解决方案2】:

    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

    【讨论】:

    • Jonny,您的解决方案完美运行。真正遗憾的是它是一个私有 API。您是否尝试在商店的某些应用程序中使用它,而这些应用程序恰好获得了批准?谢谢
    • @AlfonsoTesauro 目前我没有使用此 API 的应用程序。但是对于像这样的 API,如果你担心的话,你可以添加一些简单的字符串混淆。例如。 String(format: "%@%@%@", "clo", "udIdent", "ifier")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    • 2012-08-14
    • 2017-01-10
    • 2021-10-18
    • 2012-01-08
    相关资源
    最近更新 更多