我发现有一些用于监控Mac文件更改的库,例如:https://github.com/bdkjones/VDKQueue,但我没有找到一个适用于iOS平台监控文件更改的库。 请问有人知道如何在Objc封装中监控文件变化吗? 谢谢!
在iOS上进行文件监控是通过创建GCD所谓的“调度源”来实现的,用于监视您想要监视的任何文件或文件夹。创建调度源时,您需要提供三个有趣的事情: 指向文件或文件夹的文件描述符 用于描述您希望收到通知的事件类型的标志(文件被修改,文件被写入等) 发送这些事件通知的队列(主队列、后台队列等) 创建调度源后,您可以设置代码块,在事件发生或源被取消(销毁)时执行。在为事件发生设置的块中,您可以确定发生了哪个事件(如果注册了多种类型),并相应地使用if...else...then或switch...case语句进行处理。我正在创建一个可移植的Objective-C类,将简化此过程,但同时,您应该查看我在GitHub上发布的演示项目,它展示了如何实现我所描述的内容。 编辑: iMonitorMyFiles现在可以通过CocoaPods获取。要安装它,只需在您的Podfile中添加以下行: pod 'iMonitorMyFiles', '~> 0.1.0'
请查看 `dispatch_sources` - 这是一种基于 GCD 的监控文件系统的方法:https://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/GCDWorkQueues/GCDWorkQueues.html 我在 Mac OS 上使用它代替 kqueue,根据链接的文档,它也应该在 iOS 上可用。