注意: develop
分支 需要 Mac OS X 10.6 或更高版本,因为框架依赖于 ARC 和 区块。
网站: http://rastersize.github.com/CDEvents
这是一个 Objective-C 封装,用于支持 Mac OS X 的 FSEvents C API 并支持区块。此外,所有类都是不可变,并且应该是线程安全的。
需要 Mac OS X 10.6 (Snow Leopard) 和 Intel 64 位 CPU。这些要求来自自从 10.6 开始支持自动引用计数 (ARC) 并使用现代(即 64 位)Objective-C 运行时,因为 ARC 需要不可变 ABI。尽管构建产品可以在 10.6 及更高版本上运行,但必须在运行 10.7(Lion)的机器上构建,并使用 Xcode 4.2 和 10.7 SDK,因为 10.6 SDK 不包括 ARC。构建的产品支持手动内存管理和自动引用计数。
如果您需要支持较旧的 OS X 版本或垃圾回收,请参阅分支 support/1.1
。所有 1.1.x 版本将支持垃圾回收和 OS X 10.5。
您可以使用基于区块的版本(推荐)或基于代理的版本。同时使用这两种系统不受支持。
CDEvents.framework
拖动到您的项目中,或者CDEvents.h
头文件。CDEvents
实例,并为其提供一个在事件发生时执行的区块。简单示例代码
self.events = [[CDEvents alloc] initWithURLs:<NSArray of URLs to watch>
block:^(CDEvents *watcher, CDEvent *event) {
<Your code here>
}];
或者使用所有选项的初始化器
self.events = [[CDEvents alloc] initWithURLs:<NSArray of URLs to watch>
block:^(CDEvents *watcher, CDEvent *event) {
<Your code here>
}
onRunLoop:[NSRunLoop currentRunLoop]
sinceEventIdentifier:kCDEventsSinceEventNow
notificationLantency:CD_EVENTS_DEFAULT_NOTIFICATION_LATENCY
ignoreEventsFromSubDirs:CD_EVENTS_DEFAULT_IGNORE_EVENT_FROM_SUB_DIRS
excludeURLs:<NSArray of URLs to exlude>
streamCreationFlags:kCDEventsDefaultEventStreamFlags];
请参阅测试应用程序(TestApp
),了解如何使用此框架的示例。
这与 ARC 和区块之前的操作相同。
CDEvents.framework
拖动到您的项目中,或者CDEvents.h
头文件。CDEventsDelegate.h
头文件导入需要的地方(例如,在声明代理的文件中)。-URLWatcher:eventOccurred:
)并创建你的 CDEvents
实例。示例代码
self.events = [[CDEvents alloc] initWithURLs:<NSArray of URLs to watch>
delegate:<Your delegate>
onRunLoop:[NSRunLoop currentRunLoop]
sinceEventIdentifier:kCDEventsSinceEventNow
notificationLantency:CD_EVENTS_DEFAULT_NOTIFICATION_LATENCY
ignoreEventsFromSubDirs:CD_EVENTS_DEFAULT_IGNORE_EVENT_FROM_SUB_DIRS
excludeURLs:<NSArray of URLs to exlude>
streamCreationFlags:kCDEventsDefaultEventStreamFlags];
请参阅测试应用程序(TestApp
),了解如何使用此框架的示例。
重要:由于将 Mac OS X 10.6 设置为部署目标,无法自动清空弱引用。因此,当你不再想接收事件时,必须将 CDEvents
的 delegate
设置为 nil
。这意味着,至少在你的 -dealloc
方法中。这也适用于使用 10.7 及更高版本的情况!(delegate
是一个 unsafe_unretained
属性。)
有关更多详细信息,请参阅头文件中的文档以及下面的“API 文档”部分。
阅读最新的 API 文档 或 浏览 CDEvents 的各个版本。或者,你可以自己生成它,请见下文。
从项目的根目录运行 api.appledoc.sh
脚本。脚本接受一个可选参数,即项目的版本字符串。如果版本字符串为空,则使用 “HEAD”。
您可以使用 Doxygen 来生成 API 文档。在 Doxygen 中打开文件 api.doxygen
,点击“运行”选项卡,然后点击“运行 doxygen”按钮。完成后,您应该在项目的根目录下找到一个名为 api
的目录(git 忽略),其中包含一个名为 html
的子目录,您可以在其中找到 index.html
。双击并享受。
查看 GitHubs rastersize/CDEvents 的贡献者统计页面。
代码是在 MIT 许可证 下发布的。
如果你愿意,尽管你真的不需要,我很乐意了解你用 CDEvents 做什么!请给我发送电子邮件(first name (i.e. aron) @ last name (i.e. cedercrantz) dot se)。