Вам не нужно PHPhotoLibrary
класса, чтобы сделать расширение для редактирования фотографий в любом прошивкой или OS X, и в OS X вы не использовать его.
Весь рабочий процесс для расширения для редактирования фотографий проходит через протокол PHContentEditingController
. На обеих платформах главный контроллер просмотра расширения для редактирования фотографий реализует этот протокол. Он предоставляет объект для редактирования в методе startContentEditingWithInput:placeholderImage:
, и когда пользователь будет выполнен, он вызывает ваш метод finishContentEditingWithCompletionHandler:
, чтобы вы могли применить свои окончательные изменения и предоставить результат.
Уведомление Я говорю «когда пользователь закончил редактирование». Сохранение в библиотеке фотографий не является чем-то, что вы делаете в своем добавочном коде - вместо этого Photos запрашивает окончательный вывод вывода, а Photos обрабатывает его в библиотеке.
В вашем методе finishContentEditingWithCompletionHandler:
, вы должны:
- Создать
PHContentEditingOutput
из PHContentEditingInput
(который вы получили в startContentEditingWithInput:placeholderImage:
).
- Сохранить вывод в виде файла в формате JPEG (или видеофайла QuickTime, для видео активов) в
renderedContentURL
, что PHContentEditingOutput определяет
- Вызвать
completionHandler
блок, который был передан вам, передавая это ваш PHContentEditingOutput
.
Вы называете это обработчиком завершения, что приводит к тому, что фотографии сохраняют отредактированный объект в библиотеке.
Да, этот API не существует на OS X. – jtbandes
Действительно? Хорошо, что бы объяснить проблему. Я хочу сохранить актив и подумал, что необходимо вызвать библиотеку для запроса на изменение. Вам нужно будет больше узнать. Благодаря! – adamteale