Перебирать библиотеку фотографий на OS X?

Я пытаюсь перебрать пользовательскую библиотеку фотографий в OS X. В iOS я бы использовал платформу Photoshop, но, очевидно , она недоступна в OS X, и вместо этого мы должны использовать среду Media Library. Тем не менее, хотя я смог использовать код, указанный выше, чтобы получить доступ к MLMediaSource объект, мне трудно разобраться, как перебирать фотографии активов.

В документации Media Library Framework содержится ссылка на mediaObjectForIdentifier: метод, который звучит многообещающе, но не указывает, какой тип идентификаторов следует использовать. У меня довольно большой опыт работы с iOS, но на OS X - полный n00b, поэтому я немного растерялся.

Если бы я просто хотел пройтись по библиотеке пользователя, просматривая каждую фотографию NSLog, как я мог бы это сделать? Вы используете Media Library Framework или другой фреймворк, если он работает с текущей библиотекой Photos?

1 ответ

Решение

С этим фреймворком не сложно работать, но он утомителен, потому что он асинхронно / лениво загружает свойства, а KVO - единственное уведомление о завершении асинхронного выполнения.

Если вы хотите повторить фотографии, вам не нужно знать идентификаторы заранее.

Создать медиа-библиотеку:

self.library = [[MLMediaLibrary alloc] initWithOptions:options];

Добавить наблюдателя KVO для mediaSources, Получите доступ к mediaSources, если не nil, перейдите к следующему шагу, иначе перейдите к следующему шагу, когда ваш наблюдатель KVO сработает.

На следующем шаге, итерируйте источники, добавьте наблюдателя KVO на rootMediaGroupи доступ rootMediaGroup на каждом источнике. Если это не ноль, вызовите ваш итератор сейчас, иначе вызовите его из обработчика уведомлений KVO.

Для каждой группы rootMediaGroup следуйте той же стратегии, что и выше, но для mediaObjects, Медиа-объекты - это то, что вам нужно в конечном итоге.

Другие вопросы по тегам