Есть ли способ получить PHAssetResource для массива PHAsset? - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь получить все PHAsset из библиотеки. Однако при их получении нам нужно получить PHAssetResource, чтобы получить fileSize.

Когда у нас небольшое количество изображений, массив возвращается менее чем за 30 секунд;однако, когда у нас есть около 12k ~ изображений, это занимает слишком много времени.

Есть ли способ загрузить ресурсы для всех ресурсов одним вызовом вместо вызова API несколько раз?

Пример:

NSArray<PHAssetResource *> *const assetResources = [PHAssetResource assetResourcesForAsset: asset];
if (![assetResources firstObject]) {
  return;
}

[resource valueForKey:@"fileSize"]

PS: я не против решения в Swift.

1 Ответ

0 голосов
/ 06 ноября 2019

К сожалению, нет пути. Вы всегда должны сначала получить PHAsset, а затем запросить PHAssetResources для этого ресурса. Теоретически был бы способ (библиотека фотографий iOS - это база данных CoreData), но Apple не включила API для выполнения такого запроса.

...