2016-12-22 2 views
7

PHCollectionList에서 PHAssetCollection s에 액세스하려고합니다. 주요 아이디어는 내 iPhone (iOS 10.2)의 "People"스마트 폴더에서 모든 컬렉션 (및 에셋)을 가져 오는 것입니다. 나는 현재 코드를 사용하고 PHCollectionList 가져올 수 : 예상대로이 작동iOS 포토 프레임 워크 : "사람"스마트 폴더에서 사진에 액세스 할 수 있습니까?

PHFetchResult *listFetchResult = 
[PHCollectionList fetchCollectionListsWithType:PHCollectionListTypeSmartFolder 
             subtype:PHCollectionListSubtypeSmartFolderFaces 
             options:nil]; 
PHCollectionList *list = listFetchResult[0]; 
NSLog(@"title: %@",list.localizedTitle); 

합니다. 콘솔 출력 : "title : People". list.canContainAssetsNO을, list.canContainCollectionsYES을 반환합니다.

PHFetchResult *collectionFetchResult = 
[PHCollection fetchCollectionsInCollectionList:list options:nil]; 

collectionFetchResult.count는 항상 0을 반환

하지만 사진 앱을 실행하면 나는 "사람들"폴더 안에 10 명 컬렉션을 참조하십시오
다음, 나는 list에서 자산 컬렉션을 가져 오기 위해 노력하고있어.

사진 앱의 '사람'스마트 앨범에서 컬렉션 (및 그 안에있는 사진)에 액세스 할 수 있습니까?

+0

"사람"스마트 폴더가 동기화 된 "얼굴"앨범과 동일합니까? 그렇다면'albumSyncedFaces' 하위 유형이 필요합니다. https://developer.apple.com/reference/photos/phassetcollectionsubtype/1614024-albumsyncedfaces – matt

+0

아니면 'smartFolderFaces' 하위 유형입니까? https://developer.apple.com/reference/photos/phcollectionlistsubtype/1614056-smartfolderfaces – matt

+0

@matt 이미'PHAssetCollectionSubtypeAlbumSyncedFaces' 하위 유형을 사용하고 있습니다. 위의 제공된 코드의 고정 형식입니다. – somedev

답변

6

"동기화 된 얼굴"앨범은 iTunes를 통해 iOS 장치에 OS X (10.10 이하) 용 iPhoto에서 정의 된 앨범을 동기화 할 수있는 이전 기능 (일부 구성에서 계속 지원됨)을 참조합니다. 그 앨범들 중 하나는 iPhoto 's Faces 기능 (현대의 Photos 'People 기능의 영적 조상)입니다.

iOS 10 용 사진의 인물 기능으로 만든 "앨범"에 액세스 할 수있는 API가 없습니다 (순간 대비, 장면 분류 및 기타 대부분의 iOS 10 사진 기능). 가장 좋은 방법은 file bugs입니다.

+1

설명 주셔서 감사합니다. rdar : // 29797672 (https://openradar.appspot.com/radar?id=4952697128091648) 문제 신고 – somedev