我正在寻找一种可靠的方式来接收通知,如果用户在应用程序运行时通过iTunes文件共享修改了文档目录的内容。

我宁愿不使用

- (void)applicationDidBecomeActive:(UIApplication *)application

因为这在iOS 5上不可靠,因为您可以在不调用此方法的情况下更改document目录。

我还查看了Apple的DirectoryWatcher类,发现它在iOS 4.3及更高版本上不起作用。

编辑:
按照下面这个DirectoryWatcher的答案,它实际上是起作用的,我只是错过了默认情况下它是自动发布的。

最佳答案

苹果的DirectoryWatcher看起来不错。我还没有完全测试过,但是从粗略的外观来看...

您必须将其升级到iOS5-但是XCode会提示您执行此操作。这导致一个项目出现一个错误,可以通过将QLPreviewControllerDelegate添加到DITableViewController接口来解决。

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

08-19 16:24