Цитируя аргумент - PullRequest
0 голосов
/ 03 июля 2010
- (IBAction) charlieImputText:(id)sender {

NSAppleScript *keystrokeReturn = [[NSAppleScript alloc] initWithSource:@"tell application \"System Events\" to keystroke return"];
[keystrokeReturn executeAndReturnError:nil];

[progressBarText startAnimation:self];

charlieImputSelf = [sender stringValue];

NSAppleScript *sendCharlieImput = [[NSAppleScript alloc] initWithSource:[NSString stringWithFormat:@"tell application \"Terminal\" to do shell script  %@", charlieImputSelf]];
[sendCharlieImput executeAndReturnError:nil];

NSDictionary* errorDict;
NSAppleScript* script=[[NSAppleScript alloc] 
                       initWithContentsOfURL:[NSURL fileURLWithPath:@"/applications/jarvis/scripts/getTextCharlieResponce.scpt" ]
                       error:&errorDict];
NSAppleEventDescriptor* desc=[script executeAndReturnError:&errorDict];
NSString* result=[desc stringValue];
self.charlieOutput.stringValue = result;
charlieOutput.textColor = [NSColor greenColor];
[script release];

[progressBarText stopAnimation:self];

}

Я такой новичок в этом, и я опубликовал проблему с этим кодом в другом вопросе, и кто-то ответил мне так:

Вам нужно заключить аргумент в кавычки, чтобы выполнить скрипт оболочки.

Что это значит ?? Может кто-нибудь показать пример ??

Мне так жаль, я понятия не имею, что означает этот новый язык! : D

1 Ответ

0 голосов
/ 03 июля 2010

В вашем коде у вас есть:

@"tell application \"Terminal\" to do shell script  %@"

То, что %@ является «аргументом» команды «do shell script». Я думаю, что вам нужно:

@"tell application \"Terminal\" to do shell script  \"%@\""
...