Как извлечь данные AppleScript из NSAppleEventDescriptor в Какао и проанализировать его - PullRequest
4 голосов
/ 08 августа 2009

То, что я делаю, - это выполнение AppleScript внутри Какао. Он возвращает некоторые данные в виде NSAppleEventDescriptor , который NSLog () печатает так:

<NSAppleEventDescriptor: 'obj '{ 'form':'name', 'want':'dskp', 'seld':'utxt'("69671872"), 'from':'null'() }>

Я хочу взять эти данные и превратить их в NSDictionary или NSArray , или что-то полезное, чтобы я мог извлечь из них материал (в частности, я после поля, содержащего "69671872" номер). Кажется, это какой-то массив, но мои знания об Apple Events довольно ограничены. Есть идеи, как это сделать?

Вот источник, создающий вышеуказанные данные:

NSString *appleScriptSource = [NSString stringWithFormat:@"tell application\"System Events\"\n return desktop 1\n end tell"];
NSDictionary *anError;
NSAppleScript *aScript = [[NSAppleScript alloc] initWithSource:appleScriptSource];
NSAppleEventDescriptor *aDescriptor = [aScript executeAndReturnError:&anError];

NSLog (@"%@", aDescriptor);
[aScript release];

Заранее спасибо за любую помощь! :)

Ответы [ 2 ]

2 голосов
/ 08 августа 2009

Это запись, а не список. Попробуйте descriptorForKeyword:, передавая константу, соответствующую желаемому четырехзначному коду. (Константы объявлены в заголовках событий Apple.)

2 голосов
/ 08 августа 2009
[[aDescriptor descriptorForKeyword:keyAEKeyData] stringValue]
...