Используйте FSEvents в изолированном приложении
Я пытаюсь использовать FSEvents в своем изолированном приложении для мониторинга некоторых каталогов. Я реализовал следующий класс:
@implementation SNTracker
- (id)initWithPaths:(NSArray *)paths {
self=[super init];
if (self) {
trackedPaths=paths;
CFTimeInterval latency=1.0;
FSEventStreamContext context={0,(__bridge void *)self,NULL,NULL,NULL};
FSEventStreamRef eeventStream=FSEventStreamCreate(kCFAllocatorDefault,&callback,&context,(__bridge CFArrayRef)trackedPaths,kFSEventStreamEventIdSinceNow,latency,,kFSEventStreamCreateFlagUseCFTypes|kFSEventStreamCreateFlagWatchRoot|kFSEventStreamCreateFlagFileEvents);
FSEventStreamScheduleWithRunLoop(eeventStream,[[NSRunLoop mainRunLoop] getCFRunLoop],kCFRunLoopDefaultMode);
FSEventStreamStart(eeventStream);
}
return self;
}
static void callback(ConstFSEventStreamRef streamRef,void *clientCallBackInfo,size_t numEvents,void *eventPaths,const FSEventStreamEventFlags eventFlags[],const FSEventStreamEventId eventIds[]) {
NSLog(@"asd");
}
Проблема в том, что «asd» никогда не печатается (т.е. функция обратного вызова никогда не вызывается). Когда я отключаю «Включить изолированную программную среду приложения» в Сводке моей основной цели в XCode, вызывается обратный вызов. Я делаю что-то неправильно? Единственное право, которое я дал приложению с песочницей, - это доступ на чтение и запись к выбранным пользователем файлам.