iOS 11/12: как получить список «Альбом людей» из Photos.app

Мне нужно получить «Альбом людей» из родного photos.app. Есть ли способ получить этот результат? Я пробовал несколько способов получить «Альбом людей», но безуспешно.

Следующий метод, который я использую для получения альбома, но я только что получил CollectionList верхнего уровня с именем «People», но не могу получить коллекции внутри «People» CollectionList.

let peopleFolder = PHCollectionList.fetchCollectionLists(
    with: .smartFolder, 
    subtype: .smartFolderFaces, 
    options: nil).firstObject!

person Alica    schedule 26.09.2018    source источник


Ответы (1)


Используйте запрос на выборку с параметрами и конкретным предикатом:

let fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: "title = %@", "People")
let resultCollections = PHAssetCollection.fetchAssetCollectionsWithType(
    .smartAlbum,
    subtype: .albumRegular,
    options: fetchOptions)

Примечание! Укажите collectionType и suptype в соответствии с вашими потребностями.

Вы можете получить дополнительную информацию из примера приложения исходный код предоставлен Apple

person fewlinesofcode    schedule 26.09.2018
comment
Это не работает для альбомов People и Places. Либо ошибка, либо ожидаемое поведение, навязанное Apple. - person sudoExclaimationExclaimation; 17.03.2019