Użyj FSEvents w aplikacji piaskownicy

Próbuję użyć FSEvents w mojej aplikacji z piaskownicą do monitorowania niektórych katalogów. Zaimplementowałem następującą klasę:

@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");
}

Problem polega na tym, że „asd” nigdy nie jest drukowane (tj. Funkcja wywołania zwrotnego nigdy nie jest wywoływana). Kiedy wyłączam „Włącz aplikację Sandboxing” w podsumowaniu mojego głównego celu w Xcode, wywołanie zwrotne zostaje wywołane. czy robię coś źle? Jedyne uprawnienie, które nadałem aplikacji piaskownicy, to dostęp do odczytu i zapisu wybranych plików użytkownika.

questionAnswers(1)

yourAnswerToTheQuestion