2012-01-18 5 views
1

Код для запуска моего AppleScript в Xcode является следующее:Передача переменных на AppleScript

NSString *path = [[NSBundle mainBundle] pathForResource:@"Script" ofType:@"scpt"]; 

    NSAppleScript *script = [[NSAppleScript alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:nil]; 

    [script executeAndReturnError:nil]; 

Перед выполнением его, мне было интересно, если это было возможно установить некоторые переменные для того, чтобы использовать. Другими словами, я хочу передать переменные из своего приложения в applescript.

ответ

4

Вы можете использовать метод:

- (id)initWithSource:(NSString *)source 

и использовать stringWithFormat построить свой источник AppleScript и настройки параметров.

NSString* scriptTemplate = ...; 
NSString* actualScript = [NSString stringWithFormat:scriptTemplate, arg1, arg2, ... argN]; 
NSAppleScript *script = [[NSAppleScript alloc] initWithSource:actualScript]; 

Вы также могли бы разработать более совершенный механизм замены, где вы помечать как-то свои параметры в «Script.scpt», а затем заменить их с помощью stringByReplacingOccurrencesOfString:withString:

+3

Это решение не хорошо, как это приводит к повторной компиляции сценария каждый раз, что может быть неэффективным. Это не истинный параметр, проходящий по заданному вопросу. Более подходящий ответ можно найти здесь: http://stackoverflow.com/questions/6963072/execute-applescript-from-cocoa-app-with-params –