Подтвердить что ты не робот

Ios 8, как получить все фотографии с помощью ALAssetLibrary, чтобы заменить отсутствующий альбом с рулонной камерой

У меня есть приложение, у которого есть пользовательский Image Picker, который использует ALAssetLibrary для создания подборщика альбомов и подборщика изображений. Мы внедрили пользовательский подборщик, чтобы наши клиенты могли выбирать несколько изображений. Этот подборщик изображений отлично работает под iOS 7 и показывает альбом "Camera Roll" со ​​всеми фотографиями пользователей. Однако при запуске одного и того же приложения под iOS 8 кажется, что Apple удалила альбом "Camera Roll" из представления "Альбомы" и отображает только "Недавние фотографии". Из того, что я вижу, единственный способ получить доступ ко всем фотографиям в iOS 8 - это просмотр коллекции (в приложении "Фотографии" или в новом встроенном сборщике). К сожалению, я не могу использовать Photokit в это время, потому что мне все еще нужно поддерживать пользователей iOS 6 и 7. Кто-нибудь знает, как получить все активы и создать собственный альбом с кадром, используя ALAssetLibrary при запуске приложения iOS 7 под iOS 8 (скомпилировано в Xcode 5)?

ОБНОВЛЕНИЕ

Хорошо, как я уже говорил в своем первоначальном сообщении выше, я изначально не мог использовать новую структуру фотографий (PhotoKit). Тем не менее, мы недавно перенесли наши сборки на Xcode 6, и теперь я могу использовать фреймворк для создания группы всех фотографий (см. Пример кода примера WWW ExampleappusingPhotosframework для того, как это сделать).

Однако, так же сильно, как все говорят, что PhotoKit - это отсутствие некоторых важных возможностей фильтрации. На самом деле нет простого способа отфильтровать фотографии в исходном "PhotoStream" с использованием предиката с PHFetchResult. Вы можете использовать только общественные средства. К счастью, я понял, как их фильтровать, используя описание PHAsset. Ключ assetSource, указанный в описании, равен 2, если фотография находится в пользовательском фотопотоке. Таким образом, я использовал быстрое перечисление результатов и перенес все активы в массив, который не был в PhotoStream, используя простой фильтр stringInRange в свойстве property.description(ища "assetSource = 2" ). Это может быть не лучшее решение, но теперь оно работает, поэтому пользователь не видит дубликатов своих фотографий как из локальной библиотеки, так и из своего фотопотока. По крайней мере, я могу представить все фотографии клиентов и позволить моему мультиплексору работать так же близко, как оригинальный класс, который использовал ALAssetLibrary.

В любом случае, если у кого-то есть лучшее решение, использующее предикат, пожалуйста, lmk.

4b9b3361

Ответ 1

Хорошо, похоже, что это была просто ошибка, и iOS 8.0.2 исправил ее (по крайней мере, для меня, поскольку теперь я могу видеть все фотографии в подборщике изображений).

В этой версии содержатся исправления и исправления, в том числе:

[...] Устраняет проблему, которая препятствовала доступу некоторых приложений к фотографиям из библиотеки фотографий. [...]

Ответ 2

У меня такая же проблема. Не удалось найти правильную документацию, в которой говорилось, что библиотека активов больше не имеет доступа к этим фотографиям, но Примечания к выпуску для iOS 8 говорит, что вы можете используйте PhotosFramework для этого. Пока не тестировали.

Рамка фотографий (Photos.framework) предоставляет новые API для работы с объектами фото и видео, включая iCloud Photos, которые управляемый приложением "Фотографии". Эта структура более способна альтернативу библиотеке ресурсов.

Возможно, это означает, что мы имеем, чтобы использовать его в iOS 8+?

ОБНОВЛЕНИЕ. Невозможность доступа ко всем фотографиям является ошибкой на iOS 8.0, и она была исправлена ​​на 8.0.2. См. Мой другой ответ ниже.