Уведомление, если пользователь изменяет содержимое каталога документов через общий доступ к файлам iTunes

#iphone #ios

#iPhone #iOS

Вопрос:

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

Я предпочитаю не использовать

 - (void)applicationDidBecomeActive:(UIApplication *)application
  

потому что это ненадежно с iOS 5, потому что вы можете изменить каталог документов без вызова этого метода..

Я также изучил класс DirectoryWatcher от Apple и обнаружил, что он не работает на iOS 4.3 и более поздних версиях.

Редактировать: Согласно приведенному ниже ответу, этот DirectoryWatcher действительно работает, я только что пропустил, что он по умолчанию автоматически выпущен.

Ответ №1:

DirectoryWatcher от Apple выглядит неплохо. Я не полностью протестировал его, но с беглого взгляда…

Вам необходимо обновить его до iOS5, но XCode предложит вам это сделать. Это приводит к созданию проекта с одной ошибкой, которую можно устранить, добавив QLPreviewControllerDelegate в интерфейс DITableViewController.

 @interface DITableViewController : UITableViewController <QLPreviewControllerDataSource,
                                                      DirectoryWatcherDelegate,QLPreviewControllerDelegate,
                                                      UIDocumentInteractionControllerDelegate>
  

Комментарии:

1. Я обновил свой пост, вы были правы, что он работает для iphone, но по какой-то причине он не запускается на ipad

2. Для меня это работает на устройстве iPad, если я настрою целевое устройство на ipad и запущу.

3. Угу, сначала я не видел авторелиза, поэтому обратные вызовы происходили после того, как до него добрался releasepool. Спасибо. DirectoryWatcher * tempManager = [[[DirectoryWatcher alloc] инициализация] авторелиз];