У меня есть приложение, у которого есть пользовательский 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.