Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将Applescript外壳输出返回到目标C_Objective C_Bash_Shell_Applescript - Fatal编程技术网

Objective c 将Applescript外壳输出返回到目标C

Objective c 将Applescript外壳输出返回到目标C,objective-c,bash,shell,applescript,Objective C,Bash,Shell,Applescript,我正在编写一个可以远程运行shell命令的应用程序。我需要以管理员身份运行命令:tc-l455。我决定以管理权限在applescript中运行此命令,但在objective c中,我需要获取此输出并将其显示在NSTexView中。这是我的密码: NSAppleScript* runWithAdminPrivileges = [[NSAppleScript alloc] initWithSource:@"do shell script \"nc -l 455\" with administ

我正在编写一个可以远程运行shell命令的应用程序。我需要以管理员身份运行命令:
tc-l455
。我决定以管理权限在applescript中运行此命令,但在objective c中,我需要获取此输出并将其显示在NSTexView中。这是我的密码:

NSAppleScript* runWithAdminPrivileges = [[NSAppleScript alloc] initWithSource:@"do     shell script \"nc -l 455\" with administrator privileges"];
NSDictionary *error = [[NSDictionary alloc] init];
[runWithAdminPrivileges executeAndReturnError:&error];
NSLog(@"%@", error);
命令正在运行,但我无法看到输出。有没有办法用我的代码实现这一点,或者有没有办法用管理员权限在objective c中运行这个shell命令并查看输出


提前感谢,

-[NSAppleScript executeAndReturnError:
返回您忽略的结果,这是脚本的结果。它是一个NSAppleEventDescriptor,不是NSString,但是您可以通过调用它上的
-stringValue
来获取NSString。另外,
error
参数遵循与其他地方的
NSError**
参数相同的规则,因此不需要先用对象填充它。总而言之:

NSDictionary *errorInfo; // no initialization necessary.
NSAppleEventDescriptor *scriptResult = [runWithAdminPrivileges executeAndReturnError:&error];
if (scriptResult)
    NSLog(@“%@“, [scriptResult stringValue]);
else
    NSLog(@“%@“, errorInfo;

您可以使用
NSTask
:架构x86\u 64的未定义符号:“\u OBJC\u CLASS\u$\ u STPrivilegedTask”,引用自AppDelegate中的:OBJC CLASS ref。o ld:未找到架构x86\u 64的符号clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)这是我在运行STPrivilegedTaskSTPrivilegedTask时遇到的错误,该任务未内置于Cocoa中。你需要下载并编译这些文件。我确实下载了它们并将它们导入到我的项目中。在源代码中没有错误。这只是一个运行时错误。