2012-02-23 20 views
0

我已将AppleScript嵌入到我的Xcode项目中。脚本processId.scpt需要参数。在Objective-C中执行脚本时如何添加?如何将参数传递给Objective-C中的AppleScript?

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

我不知道怎么你的脚本采取的论点,但看看this post有关创建AEMEvent,连接参数,然后将它发送到脚本的信息。

0

根据您的基本SDK设置(这将需要至少10.6),另一种选择是添加脚本作为AppleScriptObjC类并调用像正常的Objective-C的处理程序/方法。请参阅this page以获取有关命名约定的说明(以及示例项目)和ASObjC Release Notes