我有一个PHFetchResult
,其中包含用户的iCloud共享相册,但是我无法找到一种方法来确定照片是否被共享对象之一所喜欢。
我已经检查了返回的PHAsset
的元数据,但是唯一模糊的相关属性是favourite
,但这仅记录用户是否在自己的“照片”应用中按下了“心形按钮”,而没有类似记录来自共享资产的人。
看来此数据不可用-我在文档中找不到任何东西的事实表明了这一点-但我想问一下万一StackOverflow知道得更好!
我只花了大约十分钟的时间来整理文档,并运行Google searches like this,但找不到任何方法。我希望这很容易找到是否存在。我有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文档If Shared Albums aren't working,(根据我的理解,这暗示此社交信息并不直接与iCloud照片集中的资产相关。
[与共享相册中的照片或视频相关的任何评论或喜欢都不会与照片或视频一起保存。
或者至少,如果该信息与照片和视频相关,则不会公开。导出iCloud共享相册的用户或开发人员似乎无法使用它。