如何使用PhotoKit在iCloud共享相册中获取喜欢的详细信息

时间:2014-10-01 16:43:43

标签: cocoa-touch icloud photokit

我有一个PHFetchResult包含用户的iCloud共享相册,但是我无法找到一种方法来确定一张照片是否被其中一个人所喜欢与。共享。

我已经检查了返回的PHAsset的元数据,但唯一含糊不清的属性是favourite,但这只会记录用户是否点击了他们的心脏按钮拥有自己的照片应用,而不是资产与之共享的人的喜欢。

看起来这些数据不可用 - 我无法在文档中找到任何内容的事实暗示了这一点 - 但我想问一下StackOverflow知道的更好!

2 个答案:

答案 0 :(得分:1)

我一直在进行类似的狩猎,甚至发现这个问题也花了我一段时间!令我惊讶的是,没有更多的人寻求这种功能。我找不到很多文献。

相关问题How to Get iCloud Shared Albums Owner Details显示了PHCloudSharedAlbum的存在,我可以通过基本调试对其进行验证。

let collections = PHAssetCollection.fetchAssetCollections(with: .album, subtype: .albumCloudShared, options: nil)
print("fetchAssetCollections:")
for i in 0..<collections.count  {
    if collections[i].localizedTitle == "My Test Shared Album" {
        print(collections[i])
    }
}

尽管存在这种类型的资产集合,但是从Xcode 11.4 / iOS 13.4.1 / Swift 5起,它就不会出现在当前的iOS SDK / API文档中。它似乎是私有的,不打算供公众使用。

<PHCloudSharedAlbum: 0x155e2fe30> ED1EB808-33D8-4E71-BD3F-79FCD616A87C/L0/040, title:"My Test Shared Album", subtitle:"(null)" assetCollectionType=1/101

精确的Google搜索“ PHCloudSharedAlbum”会生成一些GitHub存储库,并带有(反编译?)Photos.framework的源代码,但即使其中的字段也非常有限。

short  _cloudAlbumSubtype;
bool  _cloudMultipleContributorsEnabled;
NSNumber * _cloudOwnerEmailKey;
NSString * _cloudOwnerFirstName;
NSString * _cloudOwnerFullName;
NSString * _cloudOwnerLastName;
bool  _owned;

面对偶然的公众面对的Apple文档If Shared Albums aren't working(根据我的理解)暗示,此社交信息并不直接与iCloud照片集中的资产相关。

与共享相册中的照片或视频相关的任何评论或赞不会与照片或视频一起保存。

或者至少,如果该信息与照片和视频相关,则不会公开。似乎对于导出iCloud共享相册的用户或开发人员不可用。

答案 1 :(得分:0)

我花了大约十分钟来梳理文档,并运行Google searches like this,并且无法找到任何方法来执行此操作。如果它存在,我希望这很容易找到。我99.9%肯定如果存在,我会找到它。

我真的很想被证明是错的!