【发布时间】:2017-05-08 07:54:42
【问题描述】:
我正在尝试从PHCollectionList 访问PHAssetCollections。主要思想是从我的 iPhone(iOS 10.2)上的“人物”智能文件夹中获取所有集合(和里面的资产)。要获取PHCollectionList,我正在使用当前代码:
PHFetchResult *listFetchResult =
[PHCollectionList fetchCollectionListsWithType:PHCollectionListTypeSmartFolder
subtype:PHCollectionListSubtypeSmartFolderFaces
options:nil];
PHCollectionList *list = listFetchResult[0];
NSLog(@"title: %@",list.localizedTitle);
这按预期工作。控制台输出:“标题:人物”。 list.canContainAssets 返回 NO 和 list.canContainCollections 返回 YES。
然后,我尝试从list 获取资产集合:
PHFetchResult *collectionFetchResult =
[PHCollection fetchCollectionsInCollectionList:list options:nil];
collectionFetchResult.count 总是返回 0。但如果我打开照片应用程序,我会在“人物”文件夹中看到 10 个集合。
是否可以从照片应用程序中的“人物”智能相册访问收藏集(以及其中的照片)?
【问题讨论】:
-
“人物”智能文件夹是否与同步的“面孔”相册相同?如果是这样,您需要
albumSyncedFaces子类型。 developer.apple.com/reference/photos/phassetcollectionsubtype/… -
或者可能是
smartFolderFaces子类型? developer.apple.com/reference/photos/phcollectionlistsubtype/… -
@matt 我已经在使用
PHAssetCollectionSubtypeAlbumSyncedFaces子类型。修复了上面提供的代码的格式。
标签: ios objective-c iphone photosframework