0
我已經使用fsevents設置了一個觀察器機制。它的要點是每次在文件夾X中創建一個文件,我想要一個函數來運行。現在運行良好,但我需要能夠改變它正在觀看的路徑。下面是設置代碼:在fsevents中更改pathsToWatch
void *appPointer = (void *)self;
NSString *myPath = [[[NSUserDefaultsController sharedUserDefaultsController] defaults] stringForKey:@"FolderPath"];
NSArray *pathsToWatch = [NSArray arrayWithObject:myPath];
FSEventStreamContext context = {0, appPointer, NULL, NULL, NULL};
NSTimeInterval latency = 1.0;
stream = FSEventStreamCreate(NULL,
&fsevents_callback,
&context,
(CFArrayRef) pathsToWatch,
[lastEventId unsignedLongLongValue],
(CFAbsoluteTime) latency,
kFSEventStreamCreateFlagUseCFTypes
);
FSEventStreamScheduleWithRunLoop(stream, CFRunLoopGetCurrent(), kCFRunLoopDefaultMode);
FSEventStreamStart(stream);
我第一次嘗試只是停止FSEventStream,然後再次啓動它,但再次調用FSEventStreamCreate
時,我得到了exc_bad_access
。
也嘗試調整pathsToWatch
陣列,但也導致訪問錯誤。
有沒有更好的方法來做到這一點?