我的应用程序没有几个对象可以监视少数文件夹中的某些更改。使用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 }
}
}
}发布于 2014-10-16 09:22:42
您可以使用FSEventStreamCopyPathsBeingWatched函数。
获取通过FSEventStreamCreate.()函数创建流时提供的路径。
如果要在回调函数中使用self对象,则应该在clientCallBackInfo中传递self。
https://stackoverflow.com/questions/26393585
复制相似问题