obj*_*001 0 xcode system objective-c
好的,这是导致错误的代码的一部分:
char charlieReturn[10000];
charlieReturn[10000] = system("osascript /applications/jarvis/scripts/getTextCharlieResponce.scpt");
self.charlieOutput.stringValue = charlieReturn;
Run Code Online (Sandbox Code Playgroud)
getTextCharlieResponce.scpt返回类似这样的内容:"嗨,我的名字是查理",有时可能会比这更长.该脚本返回纯文本.我需要快速帮助!
提前致谢!:d
以利亚
不幸的是,您的代码中存在许多问题.
该C函数不会返回脚本的标准输出.system char*
即使使用返回的函数char*,也不能char像以前那样将其分配给数组:
char* str="aeiou";
char foo[100];
foo[100]=str; /* doesn't work */
foo=str; /* doesn't work either */
Run Code Online (Sandbox Code Playgroud)Cocoa的字符串类,NSString*不是C字符串char*,尽管您可以轻松地在两者之间进行转换:
NSString* str=[NSString stringWithUTF8String:"aeiou"];
Run Code Online (Sandbox Code Playgroud)如果您想要调用Apple脚本中的字符串,则需要执行以下操作:
准备一个 NSAppleScript:
NSDictionary* errorDict;
NSAppleScript* script=[[NSAppleScript alloc]
initWithContentsOfURL:[NSURL fileURLWithPath:@"path/to/script" ]
error:&errorDict];
Run Code Online (Sandbox Code Playgroud)执行并获得回复:
NSAppleEventDescriptor* desc=[script executeAndReturnError:&errorDict];
NSString* result=[desc stringValue];
Run Code Online (Sandbox Code Playgroud)发布脚本:
[script release];
Run Code Online (Sandbox Code Playgroud)学习C和Objective-C,玩得开心!