Как избежать копирования дубликатов изображений в библиотеку фотографий iPhone? - PullRequest
0 голосов
/ 24 августа 2009

Я пишу простое приложение для копирования набора изображений в библиотеку фотографий пользователя, чтобы пользователь мог использовать их в качестве фона. Проблема в том, что если пользователь запускает приложение более одного раза, дубликаты изображений будут скопированы в библиотеку фотографий. Учитывая ограничения, которые Apple накладывает на доступ к содержимому библиотеки фотографий, какой самый простой способ, если таковой имеется, избежать записи дубликата файла в библиотеку?

Ben

Ответы [ 2 ]

0 голосов
/ 17 сентября 2009

Этот ответ несколько запоздал, но поздний ответ лучше, чем вообще никакого ответа. Ответ заключается в том, что нет способа проверить библиотеку фотографий (PL) на наличие дублированного изображения (по крайней мере, в рамках ограничений публичного API). Единственный способ записи в библиотеку фотографий - через глобальную функцию UIKit:

void UIImageWriteToSavedPhotosAlbum (
   UIImage  *image,
   id       completionTarget,
   SEL      completionSelector,
   void     *contextInfo
);

Этот код просто записывает экземпляр UIImage в библиотеку фотографий. Ни один из его четырех параметров не представляет дополнительный, потенциально идентифицирующий объект, который может быть сохранен вместе с изображением. Кроме того, UIImage или CGImage, которые он содержит, не предоставляют слот для «метаданных» такого рода. Конечно, всегда можно создать подкласс, но, к сожалению, нет возможности проверить содержимое PL. PL является постоянным хранилищем только для записи, чье содержимое, по крайней мере, с точки зрения программиста API, по существу анонимно. Как черная дыра, у библиотеки фотографий есть "односторонняя поверхность".

0 голосов
/ 24 августа 2009

Вы можете сохранить данные изображений, которые были сохранены в вашем приложении, записав их в файл или используя базовые данные, чтобы вы знали, какие были сохранены, а какие нет. Y

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...