Waaatcher 0.1.4

Waaatcher 0.1.4

Chen 维护。



Waaatcher 0.1.4

  • Chen

Waaatcher

Build Status Cocoapods Cocoapods platforms Swift Version

macOS 的文件监视器包装器

演示

Demo

FileSystemEvent

FileSystemEvent API

如何使用

开始

let watcher = Waaatcher(paths: [path1, path2, path3])

// ...
watcher.watcherEventCallback = { events in
    print("Events: \(events)")
}

watcher.start()

停止

watcher.stop()
// or watcher = nil

每个事件都是一个包含下面三个部分的架构。

struct WaaaFSEvent {
    let path: String
    let flags: WaaaFSEventFlags
    let ID: FSEventStreamEventId
}

另外,`WaaaFSEventFlags` 被定义为不可读的 `FSEventStreamEventFlags` 的包装器。

响应式扩展

v1.0 扩展 Waaatcher 响应式扩展。API 简单直观,与 Waaatcher 原生回调和事件数组参数不同,响应式扩展通过单独的事件进行触发。

fileprivate let bag = DisposeBag()
// ...
let watcher = Waaatcher(paths: [path])
watcher?.rx.FSEventObservable.subscribe(onNext: { [weak self] in
    self?.output("Event: \($0)")
}).disposed(by: bag)

参考资料

  1. 使用 FSEventsFramework
  2. Apple FSEvents