ALAssetsGroup numberOfAssets возвращает 0 с библиотекой фотографий на iPhone, которая была обновлена с помощью фотографий
У меня есть приложение, которое отображает список фотоальбомов для пользователя, чтобы они могли выбрать фотографии внутри себя и загрузить их на сервер. Это все хорошо и надежно, но один человек, который обновил свои библиотеки Mac и iPhoto до Photos, сообщил, что когда они теперь используют приложение, некоторые из их фотоальбомов на их iPhone и iPad говорят "0 фотографий", когда эти альбомы работали до обновления,
Я просто перечисляю группу активов (делаю проверку ошибок по пути) и строю UITableViewCell
с названием и количеством фотографий с миниатюрой. Это работает в течение четырех лет, и я только что обновил код до Swift. До обновления Photos не было сообщений о проблемах со старым кодом Obj C или более новым кодом Swift. Я не смог найти ничего в примечаниях к выпуску, относящихся к этой проблеме.
Если вы посмотрите на обновленную библиотеку фотографий в приложении "Фотографии" на iPhone, альбомы теперь находятся в папке "iPhoto Albums". Это те со случайными проблемами.
Приведенный ниже код извлекает группу из готового массива, устанавливает фильтр только для фотографий и получает количество фотографий.
Код для извлечения миниатюры и заголовка отсутствует в списке, потому что он всегда работает и не имеет отношения к проблеме.
Кроме того, это всегда одни и те же альбомы, с которыми это происходит. В документации Apple ничего не говорится о numberOfAssets()
за исключением того, что он основан на фильтрах. Фильтр действителен, и проверенные альбомы были проверены на наличие изображений и отсутствие видео.
Любые идеи о том, почему это происходит, будут высоко оценены.
let assetGroup = assetsGroup[indexPath.row] as! ALAssetsGroup
assetGroup.setAssetsFilter(ALAssetsFilter.allPhotos())
let photoCount = assetGroup.numberOfAssets()
1 ответ
Я думаю, и это только предположение, что ваш код на основе ALAsset мертв.
Основа библиотеки активов была заменена Photo Kit - и этому есть причина. Весь смысл Photo Kit состоит в том, чтобы подготовить вас к совершенно другой реальности, где фотографии основаны на облаке, а приложение Photos на телефоне и приложение Photos на Mac по-новому взаимодействуют через облако. Вы должны были начать заниматься этим еще в июне 2014 года, когда вышел Photo Kit; Теперь приложение Photos на Mac стало реальностью, и эта реальность поразила ваше приложение.
Таким образом, я бы предположил, что вы, вероятно, никуда не денетесь с этой проблемой, пока вы не замените весь свой подход к библиотеке активов на работу с библиотекой фотографий на подход, основанный на Photo Kit. Конечно, я могу ошибаться, но мой лучший совет, по крайней мере, состоит в том, чтобы переписать ваше приложение с помощью Photo Kit и посмотреть, действительно ли оно помогает.