问题标签 [nstask]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
781 浏览

cocoa - 'cat' 命令的 NSTask 问题

我尝试使用 cat 命令连接文件。当我在终端中使用它时,一切正常:

尝试使用 NSTask 重现此问题,出现以下错误:

代码 :

NSLog 输出:

错误 :

“startTaskWithLaunchPath:andArguments:showingProcess:”可以与许多其他终端命令一起正常工作,我 100% 确定这不是问题。

0 投票
1 回答
163 浏览

bash - bash 脚本的 IBAlert 输出

我使用 NSTask 运行我的 bash 脚本,运行良好,但最后,我希望应用程序制作一个 iBAlert(例如:D),但它显示了一行 bash 脚本(例如:Pacthing hlll ... Pathing dlll。 .. 成功路径 dll,hlll(无论如何))。我想要 IBAlert 中的“成功路径...”部分。可能吗?

谢谢

0 投票
2 回答
1813 浏览

cocoa - NSTask 启动导致崩溃

我有一个可以通过这个终端命令导入 XML 文件的应用程序:

打开 /path/to/main\ app.app --args myXML.xml

这很好用,没有问题。我已经使用 Applescript 通过 shell 启动了这个命令,它也能正常工作。然而,当尝试使用以下代码使用 Cocoa 的 NSTask Launcher 时:

应用程序将启动到初始屏幕,然后在单击下一步按钮或尝试关闭窗口时崩溃。我尝试过使用 NSAppleScript :

这将启动程序,它也会崩溃,我在 Xcode 调试窗口中收到此错误:

所以通过研究我想出了这个:

但这会导致与最后一个命令相同的结果。关于导致这次崩溃的任何想法?

0 投票
2 回答
1366 浏览

objective-c - 如何使用 NSTask 获得类似于 Tail -f 的内容

我需要将最后添加的行实时读取到日志文件中,并捕获正在添加的行。

类似于 Tail -f 的东西。

所以我的第一次尝试是通过 NSTask 使用 Tail -f。

使用下面的代码我看不到任何输出:

使用时我可以看到预期的输出:

  1. 我如何捕获该尾部 NSTask 的输出?

  2. 这种方法是否有任何替代方法,我可以在其中打开文件流,并且每次添加一行时,将其输出到屏幕上?(基本的日志记录功能)

0 投票
2 回答
481 浏览

cocoa - 在 rsync NSTask 方法中包装排除选项

我正在尝试将 rsync 包装在 NSTask 中并使用排除选项来不同步隐藏文件(点文件)。我知道这适用于命令行:

我的 NSTask 定义如下:

如果没有排除参数,事情就可以正常工作。事实上,上面的定义一切正常,但隐藏文件仍然被复制。

我努力了:

  • 用反斜杠转义单个刻度
  • 使用转义的双引号
  • 使用两个反斜杠来转义转义的反斜杠
  • 不使用 --exclude= 而只是 --exclude 使用单独的数组元素 @"'.*'"

似乎没有得到我想要的结果。

欢迎任何建议。

0 投票
2 回答
1649 浏览

cocoa - NSTask 不终止

我正在尝试使用 NSTask 运行 UNIX 'apropos' 命令。这是我的代码:

问题是这永远不会回来。我还尝试使用 Apple 的示例代码 (TaskWrapper),它返回输出(分三段),但它从不调用 processFinished 处理程序。

此外, appendOutput: 处理程序接收重复​​项。因此,例如,如果 apropos 返回以下内容:

1 2 3 4 5

我可能会收到这样的信息:

1 2 3

1 2 3 4

5

(分为 3 条附加消息)。

我注意到 Apropos 以一种可以在命令行中上下滚动的格式显示输出,而不是直接将数据直接输出到标准输出;如何通过 NSTask 和 NSPipe 可靠地阅读此内容?

0 投票
3 回答
507 浏览

cocoa - NSTask 输出格式

我正在使用 NSTask 从 /usr/bin/man 获取输出。我得到了输出,但没有格式化(粗体,下划线)。应该是这样的:

带下划线的粗体文本

(注意斜体文本实际上是带下划线的,这里没有格式)

而是像这样返回:

带有 _u_n_d_e_r_l_i_n_e 的 BBoolldd 文本

我在http://cl.ly/052u2z2i2R280T3r1K3c有一个最小的测试项目,您可以下载并运行它;注意窗口什么都不做;输出被记录到控制台。

我想我需要以某种方式手动解释 NSData 对象,但我不知道从哪里开始。理想情况下,我希望将其转换为 NSAttributedString,但首要任务实际上是消除重复项和下划线。有什么想法吗?

0 投票
1 回答
817 浏览

objective-c - 可可问题 - NSTask 不起作用

NSTask 不工作;我认为这与论点有关。这是我的代码:

谢谢

0 投票
4 回答
2910 浏览

objective-c - 启动一个 NSTask 并将其放在前面

我正在尝试使用 NSTask 启动另一个应用程序

虽然这有效,但主 gui 窗口不会出现在前面。

当使用不同的文件名重复调用时,即使只有一个应用程序实例正在运行,新文件也会加载到应用程序中

任何指针?我确实尝试SetFrontProcess过,但即使在引入延迟之后似乎也没有效果

我确实查看了 NSRunningApplication 但它似乎在 10.5 上不可用,而我需要一个适用于 10.5 和 10.6 的解决方案

0 投票
2 回答
1981 浏览

objective-c - 尝试运行 NSTask 但出现错误

我有一个独立的(第 3 方)应用程序,我正在尝试使用命令“kick”来启动它。我已经设置了我的 ~/.bash_profile 和 /etc/bashrc 文件,这样我就可以在终端窗口中输入 kick [command] 并且它运行良好。所以我假设我已经正确设置了所有内容。

当我尝试使用 NSTask 时,问题就来了。

基本上我正在做的是创建两个可变数组,kickBuild 和 kickOut。一个用于组装命令(它是一串标志),一个用于与 NSTask 一起使用。我采用 kickBuild 并将其转换为由空格分隔的字符串,然后将其作为对象添加到第二个数组中。

所以我的命令应该看起来像“kick -i /path/to/input/file.ext -as 2 -g 2.2”等。如果我在终端窗口中输入它,效果很好。

当我构建我的应用程序并运行此代码时,我收到此错误...</p>

dyld:未加载库:build/darwin_x86_64/gcc_opt_dynamic/core/libai.dylib

引用自:/Users/Gene/Kick/Kick-3.3.4.0/bin/kick

原因:找不到图片

这是 kickOut 的 NSLog… kick -i /Users/Gene/Test_Main.0001.ext -r 960 540 -as 2 -g 2.2 -v 5 -dp

这是我做错了什么吗?或者这是踢的问题?

我将如何使用一些基本的终端任务测试 NSTask 以确保我正确使用 NSTask?

如果我在没有 @"-c" 的情况下运行它,我会得到:/bin/sh: ls ~/Desktop: No such file or directory

任何帮助表示赞赏。

太感谢了