Eonil 2018 年维护。2019 年维护。
可以直接在 Swift 中使用 FSEvents,但仍然需要许多样板代码和细微的转换。
该库提供了主要忠实于 Swift 5 定制的 FSEvents 功能的包装器。
导入。
import EonilFSEvents
启动。
try EonilFSEvents.startWatching(
paths: ["/"],
for: ObjectIdentifier(self),
with: { event in print(event) })
停止。
EonilFSEvents.stopWatching(for: ObjectIdentifier(self))
创建一个 EonilFSEventStream
,将其调度到 GCD 队列,然后启动。
let s = try EonilFSEventStream(pathsToWatch: paths,
sinceWhen: .now,
latency: 0,
flags: [],
handler: handler)
s.setDispatchQueue(DispatchQueue.main)
try s.start()
使用后,通过停止和使无效(取消调度)来反初始化。
s.stop()
s.invalidate()
一旦最后一个强引用被移除,流将被销毁。
在 Xcode 中,AppKit 应用程序默认配置为使用沙盒。沙盒应用程序无法访问其容器之外的文件。 因此,它可能看起来无法接收容器之外的文件系统事件。 要接收容器之外的文件系统事件,您应该关闭沙盒。
目前,xcodebuild
在包的依赖关系解析上失败。 我不知道为什么。 似乎 Xcode 在这方面存在一些问题。 要解决这个问题,只需显式设置 SYMROOT
。 请参阅 test.zsh
文件了解如何设置它。
版权所有 (c) 2018 Hoon H., Eonil。 保留所有权利。 此库的使用已根据“MIT 许可证”授予。