Проблема с синтаксисом Obj-C / AppleScript - PullRequest
0 голосов
/ 23 января 2011

Я вызываю AppleScript из моего приложения. Соответствующий фрагмент моего кода выглядит так:

-(void)sendMail:(NSString*)addressStr
    {
    NSString *scriptString = <snip>
    @"end tell\n"   
    @"tell b to make new to recipient with properties {address:\"someone@somewhere.com\"}\n"
    @"send b\n"
    @"end tell\n";
    <snip>
}

Сценарий с «жестко запрограммированным» адресом электронной почты работает отлично, но я действительно хочу использовать адреса из базы данных нашего сообщества. Я попытался использовать строку mutable для scriptString, затем вставить в нее переданный addressStr с точным (известным) индексом перед передачей scriptString объекту AppleScript. Но если я удалю (только) адресные символы и попробую что-то вроде:

@"tell b to make new to recipient with properties {address:\"\"}\n"
<snip>
[scriptString insertString:addressStr atIndex:556];

... либо не компилируется, либо выдает ошибку «Попытка изменить неизменяемый объект (??) с помощью insertString: atIndex:» во время выполнения - в зависимости от того, что я пытаюсь.

Так что либо мой синтаксис неверен (P = 0,95), либо я пытаюсь сделать невозможное с помощью AppleScript. Кто-нибудь может мне помочь, пожалуйста? Большое спасибо заранее: -)

1 Ответ

2 голосов
/ 23 января 2011

Вам нужно использовать [NSString stringWithFormat:@"... %@ ...", @"arg"].

...