Есть ли хороший способ получить список PHAsset сгруппированы по дате на PhotoKit? - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь отобразить все фотографии пользователя, сгруппированные по дате на UICollectionView с PhotoKit .

Но следующий метод, который я сделал, имеет проблему, заключающуюся в том, что для устройства требуется больше времени, когда на устройстве больше изображений.

Мой метод

//1. Get `PHFetchResult` 
let allPhotosOptions = PHFetchOptions()
allPhotosOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: false)]
let fetchResult = PHAsset.fetchAssets(with: PHAssetMediaType.image, options: allPhotosOptions)

// 2. Get all `PHAsset`
var assets: [PHAsset] = []
fetchResult.enumerateObjects { (asset, _, _) in
    assets.append(asset)
}

// 3. Group by date
var assetGroupDictionary: [String: AssetGroup] = [:]
for asset in assets {
    let dateKey = asset.creationDate.creationDateKey // "2019.10.19"
    if assetGroupDictionary[dateKey] != nil {
        assetGroupDictionary[dateKey]?.assets.append(asset)
    } else {
        assetGroupDictionary[dateKey] = AssetGroup(title: dateKey, assets: [asset])
    }
}
assetGroups = assetGroupDictionary.map { $0.value }
assetGroups.sort { $0.title > $1.title }

Я предполагаю, что сгруппированный список PHAsset может быть связан с PHCollectionList. Но я не смог найти правильного решения.

Есть ли хороший способ получить список PHAsset, сгруппированный по дате?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...