Я настроил механизм наблюдателя, используя fsevents.Суть в том, что каждый раз, когда файл создается в папке X, я хочу, чтобы функция запускалась.Сейчас он работает нормально, но мне нужно сменить путь, по которому он смотрит.Вот установочный код:
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, а затем снова запустить его, но я получаю exc_bad_access
при повторном вызове FSEventStreamCreate
.
Также пробовалнастройка массива pathsToWatch
на лету, но это также вызвало ошибку неверного доступа.
Есть ли лучший способ сделать это?