gpt4 book ai didi

cocoa - 在沙盒应用程序中使用 FSEvents

转载 作者:行者123 更新时间:2023-12-03 16:09:20 25 4
gpt4 key购买 nike

我正在尝试在我的沙盒应用程序中使用 FSEvents 来监视某些目录。我实现了以下类(class):

@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 的主要目标摘要中禁用“启用应用程序沙箱”时,回调将被调用。难道我做错了什么?我给予沙盒应用程序的唯一权利是对用户所选文件的读写访问权限。

最佳答案

并且用户已经选择了您尝试通过 FSEvent 监控的路径?因为如果他没有,您将不被允许访问它,因此也无法监视它。只有允许您访问的路径才能被监控。

关于cocoa - 在沙盒应用程序中使用 FSEvents,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14957747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com