我一直在环顾四周,看起来 VDKQueue 是 UKKQueue 的更现代版本,但我在实现它时遇到了麻烦(我还不擅长 Cocoa)。到目前为止我有这个,但我对我还需要什么(或者如果这甚至是正确的)有点茫然:
VDKQueue *kqueue = [[VDKQueue alloc] init];
[kqueue addPath:path notifyingAbout:VDKQueueNotifyAboutWrite];
[kqueue setDelegate:self];
这个答案似乎很好地概述了如何设置它,我只是不太明白。现在我已经初始化了 VDKQueue,如何设置修改文件时会发生什么?
从另一个答案:
实现非常简单:
- 让你的控制器成为
VDKQueueDelegate
;(我添加<VDKQueueDelegate>
到我的 AppDelegate.h)- 声明一个
VDKQueue*
ivar / 属性;(这是VDKQueue *kqueue = [[VDKQueue alloc] init];
吗?)- 设置委托方法
VDKQueue:receivedNotification:forPath:
;(我该怎么做呢?)- 初始化队列并将其委托设置为控制器本身;(这是不是这个
[kqueue setDelegate:self]
;?)- 添加要观看的资源
addPath:notifyingAbout:
。(添加了这一行[kqueue addPath:path notifyingAbout:VDKQueueNotifyAboutWrite];
)然后在委托方法中做你的事情。
可能是代码中的委托方法?
//
// Or, instead of subscribing to notifications, you can specify a delegate and implement this method to respond to kQueue events.
// Note the required statement! For speed, this class does not check to make sure the delegate implements this method. (When I say "required" I mean it!)
//
@class VDKQueue;
@protocol VDKQueueDelegate <NSObject>
@required
-(void) VDKQueue:(VDKQueue *)queue receivedNotification:(NSString*)noteName forPath:(NSString*)fpath;
@end