我已将AppleScript嵌入到我的Xcode项目中。脚本 processId.scpt 需要一个参数。如何在Objective-C中执行脚本时添加它?
NSString *scriptPath = [[NSBundle mainBundle] pathForResource:@"processId" ofType:@"scpt"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:scriptPath]) {
NSURL *scriptUrl = [[NSURL alloc] initWithString:scriptPath];
NSDictionary *error = nil;
NSAppleScript *script = [[NSAppleScript alloc] initWithContentsOfURL:scriptUrl error:&error];
NSAppleEventDescriptor *result = [script executeAndReturnError:nil];
NSData *data = [result data];
int pid = 0;
[data getBytes:&pid length:[data length]];
NSLog(@"Result: %d. %@. %@.", pid, [result stringValue], [error description]);
}
答案 0 :(得分:0)
我不确定你是如何在脚本中使用参数的,但请查看this post以获取有关创建AEMEvent
,为其附加参数,然后将其发送到脚本。
答案 1 :(得分:0)
根据您的基本SDK设置(它必须至少为10.6),另一个选项是将脚本添加为AppleScriptObjC类并调用处理程序/方法,如普通的Objective-C。有关说明(和示例项目),请参阅this page,有关命名约定,请参阅ASObjC Release Notes。