Мне нужно получить три фотографии, отсортированные по дате съемки - последняя из последних была сделана. Способ, которым я в настоящее время это делаю, - это собрать все фотоактивы, а затем извлечь активы по соответствующим индексам (0, 1, 2). Хотя это работает, мне любопытно, есть ли более эффективный способ сделать это, когда меня интересует только тройка. Документы объясняют, что выборка не возвращает все данные изображения - только метаданные, но мне все равно не нужно получать все метаданные. Есть ли PHFetchOption
, который я мог бы использовать для ограничения выборки, или NSPredicate
, или это не нужно беспокоиться?Limit PHAsset извлекает результат только из 3-х активов
var assetsFetchResults = PHAsset.fetchAssetsWithMediaType(.Image, options: nil)
let imageManager = PHCachingImageManager()
if assetsFetchResults?.count > 0 {
var asset = assetsFetchResults?[0] as? PHAsset
imageManager.requestImageForAsset(asset, targetSize: targetSize, contentMode: .AspectFill, options: nil, resultHandler: ...)
}
//repeat for index 1 and 2
Вы можете использовать 'fetchKeyAssetsInAssetCollection: опции: 'для получения нескольких фотографий KEY вместо' fetchAssetsInAssetCollection: options: options: ' – k06a
Это не работает в случае конкретных пользовательских библиотек приложений. – jarora
@jarora Это сработало для меня в iOS 8.4.1 в альбоме, созданном сторонним приложением – Joey