- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类,它会遍历 OSX 上给定文件夹的所有子文件夹,并针对找到的每个文件夹向其委托(delegate)发送一条消息。
对于找到的每个文件夹,我想运行一个 NSTask
。到目前为止,一切都很好。当我为 NSTask
指定 terminationHandler
时,我遇到了问题。
这是代码:
-(void)crawler:(FTCFileSystemCrawler *)aCrawler
didFindFolder:(NSURL *)aURL
withName:(NSString *)aFileName
stop:(BOOL *)stop{
NSTask *task = [NSTask new];
task.launchPath = @"/usr/bin/say";
task.arguments = @[aFileName];
task.terminationHandler = ^(NSTask *aTask){
NSLog(@"Terminating!");
[self.tasks removeObject:aTask];
};
[self.tasks addObject:task];
[task launch];
//[task waitUntilExit];
}
这工作正常,在将 launch
发送到 NSTask
后,我发送 waitUntilExit
。如果我不这样做,终止处理程序将永远不会运行。
我做错了什么?
PS 请记住,这只是一个简单的示例。我实际上用它来识别 git 存储库并运行命令。
最佳答案
尽管使用了 task.terminationHandler = ^(NSTask *aTask)
,您是否尝试过类似的操作,问题可能是在该 block 内使用,而该 block 未正确处理。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(taskDidTerminate:)
name:NSTaskDidTerminateNotification
object:nil];
关于objective-c - NSTask 终止处理程序仅在我发送 waitUntilExit 时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19166165/
我有一个多线程程序,需要一次运行许多可执行文件并等待它们的结果。 我在非主线程上运行的NSOperationQueue中使用[nstask waitUntilExit](在主线程上运行NSTask完全
我需要同步使用 NSTask,但是我发现我的任务偶尔会在“waitUntilExit”命令下挂起。我想知道是否有一种优雅的方式(错误处理方法)来终止挂起的任务,以便我可以重新启动另一个任务? 最佳答案
我收到如下错误(经过审查和修剪以保护专有信息): Process: MyExecutable [7150] Path: /Applicat
所以我让 NSTask 运行一个脚本,该脚本生成一些内容的列表,并将其放入我读取的 txt 中。但是,如果我使用当前的代码(如下),则会在 NSTask 完成之前弹出警报,从而导致空白警报。我尝试过
我有一个类,它会遍历 OSX 上给定文件夹的所有子文件夹,并针对找到的每个文件夹向其委托(delegate)发送一条消息。 对于找到的每个文件夹,我想运行一个 NSTask。到目前为止,一切都很好。当
我是一名优秀的程序员,十分优秀!