我有一个PHFetchResult
包含用户的 iCloud 共享相册,但是我无法找到一种方法来确定一张照片是否被与之共享的人喜欢。
我检查了PHAsset
返回的 s 的元数据,但唯一模糊相关的属性是favourite
,但这仅记录用户是否在他们自己的照片应用程序中点击了心形按钮,而不是资产已共享的人的喜欢和。
看起来这个数据不可用——我在文档中找不到任何东西的事实表明了这一点——但我想问一下,以防 StackOverflow 知道得更好!
我有一个PHFetchResult
包含用户的 iCloud 共享相册,但是我无法找到一种方法来确定一张照片是否被与之共享的人喜欢。
我检查了PHAsset
返回的 s 的元数据,但唯一模糊相关的属性是favourite
,但这仅记录用户是否在他们自己的照片应用程序中点击了心形按钮,而不是资产已共享的人的喜欢和。
看起来这个数据不可用——我在文档中找不到任何东西的事实表明了这一点——但我想问一下,以防 StackOverflow 知道得更好!
我只花了大约十分钟梳理文档,并像这样运行谷歌搜索,但找不到任何方法来做到这一点。如果它存在,我希望这很容易找到。我有 99.9% 的把握,如果它存在,我会找到它。
我真的很想被证明是错的!
我一直在进行类似的狩猎,甚至发现这个问题也花了我一段时间!我很惊讶没有更多的人寻找这个功能。我找不到太多关于这方面的文献。
相关问题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 文档,如果共享相册不起作用,暗示(根据我的解释)此社交信息与 iCloud 照片集中的资产没有直接关联。
任何附加到共享相册中的照片或视频的评论或喜欢都不会与照片或视频一起保存。
或者至少,如果该信息与照片和视频相关联,则不会暴露。导出 iCloud 共享相册的用户或开发人员似乎无法使用它。