1

我的应用程序有几个对象可以监视几个文件夹中的某些更改。使用 FSEvents 库。

问题是我看不到在fsevents_callback的某些观察者中获取受监控路径的简单方法。也许这是微不足道的,但是在此回调中不提供对self的引用(存储监控路径的位置),并且在此回调中可用于识别封闭对象的信息太少了。

void fsevents_callback(ConstFSEventStreamRef streamRef, void *clientCallBackInfo, size_t numEvents, NSArray *eventPaths, const FSEventStreamEventFlags eventFlags[], const
                       FSEventStreamEventId eventIds[]) {

  size_t i;
  for (i = 0; i < numEvents; ++i)
  {
    NSString *processedPath = [eventPaths objectAtIndex:i];
    {
      //if ([processedPath isEqualToString: path]) {
      void (^block)() = (__bridge void (^)())(clientCallBackInfo);
      block();
      //do something else & break }
    }
  }
}
4

1 回答 1

1

你可以使用FSEventStreamCopyPathsBeingWatched函数。

获取通过 FSEventStreamCreate...() 函数之一创建流时提供的路径。

如果要在回调函数中使用 self 对象,则应在 clientCallBackInfo 中传递 self。

于 2014-10-16T09:22:42.953 回答