iPhone / iPad: уведомление об изменении каталога - PullRequest
1 голос
/ 20 мая 2011

У меня есть приложение с UIFileSharingEnabled. Если устройство привязано, пользователь может использовать iTunes (или другие программы) для удаления новых файлов или удаления существующих файлов. Я хотел бы обнаружить изменения в файловой системе моего приложения на устройстве.

Есть ли уведомление о смене каталога (или подобное)? Уведомление Темы программирования не имеет исчерпывающего списка уведомлений.

Я думаю, что ответ Галеи (ниже), вероятно, сработает, но GCD доступен только в iOS 4.0 и более поздних версиях. К сожалению, я ориентируюсь на iOS 3.2.

Ответы [ 2 ]

1 голос
/ 20 мая 2011

Вы можете использовать Grand Central Dispatch, в частности, dispatch_source_create может быть хорошим началом.(кстати, GCD построен поверх kqueue, по крайней мере, для части события)

0 голосов
/ 20 мая 2011

Да, это система UNIX!Вы можете использовать функцию kqueue() для отслеживания изменений каталога по мере их возникновения.

Вот пример того, как его использовать: http://blog.julipedia.org/2004/10/example-of-kqueue.html. Или, если вы предпочитаете, есть хороший класс-оболочка Objective-Cвызов UKKQueue: http://www.zathras.de/angelweb/sourcecode.htm

Я полагаю, что событие будет запущено при создании новых файлов, а не после завершения операции записи.Таким образом, вы не сможете сразу прочитать файлы - но отображение файла в списке должно быть в порядке.

Если вам нужно прочитать файл (например, для предварительного просмотра jpeg), выможет подождать несколько секунд после того, как оно будет скопировано с помощью NSTimer.

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