Cocoa 如何使用NSAppleScript创建AppleScript文件?

Cocoa 如何使用NSAppleScript创建AppleScript文件?,cocoa,applescript,Cocoa,Applescript,我的代码如下所示: NSMutableString* cmd = [NSMutableString new]; [cmd appendString:@"script createScriptFile\n"]; [cmd appendString:@"beep\n"]; [cmd appendString:@"end script\n"]; [cmd appendString:@"store script createScriptFile in \"/tmp/narg.scpt\"\n"]; NS

我的代码如下所示:

NSMutableString* cmd = [NSMutableString new];
[cmd appendString:@"script createScriptFile\n"];
[cmd appendString:@"beep\n"];
[cmd appendString:@"end script\n"];
[cmd appendString:@"store script createScriptFile in \"/tmp/narg.scpt\"\n"];
NSAppleScript* script = [[NSAppleScript alloc] initWithSource:cmd];
NSDictionary* err = nil;
NSAppleEventDescriptor *result = [script executeAndReturnError:&err];
script createScriptFile
beep
end script
store script createScriptFile in "/tmp/narg.scpt"
beep
它运行正常,没有错误,但生成的脚本文件(narg.scpt)如下所示:

NSMutableString* cmd = [NSMutableString new];
[cmd appendString:@"script createScriptFile\n"];
[cmd appendString:@"beep\n"];
[cmd appendString:@"end script\n"];
[cmd appendString:@"store script createScriptFile in \"/tmp/narg.scpt\"\n"];
NSAppleScript* script = [[NSAppleScript alloc] initWithSource:cmd];
NSDictionary* err = nil;
NSAppleEventDescriptor *result = [script executeAndReturnError:&err];
script createScriptFile
beep
end script
store script createScriptFile in "/tmp/narg.scpt"
beep
我想让narg.sctp看起来像这样:

NSMutableString* cmd = [NSMutableString new];
[cmd appendString:@"script createScriptFile\n"];
[cmd appendString:@"beep\n"];
[cmd appendString:@"end script\n"];
[cmd appendString:@"store script createScriptFile in \"/tmp/narg.scpt\"\n"];
NSAppleScript* script = [[NSAppleScript alloc] initWithSource:cmd];
NSDictionary* err = nil;
NSAppleEventDescriptor *result = [script executeAndReturnError:&err];
script createScriptFile
beep
end script
store script createScriptFile in "/tmp/narg.scpt"
beep
我做错了什么

谢谢,
克里斯

你确定吗?当我运行您在AppleScript编辑器中给出的示例时,“/tmp/narg.scpt”的内容正如您所期望的那样是“beep”。如果您确实需要动态生成AppleScripts,最简单的方法是将源代码作为UTF8数据传输到
osacomile
。如果必须在过程中完成,请使用OSAKit,它提供了NSAppleScript中缺少的大部分功能(AppleScript编辑器用户就是这样做的)。它没有文档记录,因此您需要阅读标题以了解用法,但不太难理解。