Мое приложение должно периодически вызывать предварительно скомпилированные сценарии AppleScripts в фоновом потоке . Поскольку NSAppleScript не является потокобезопасным, мне нужно выполнить сценарии в основном потоке. Мне нужно получить возвращаемое значение после выполнения скрипта, поэтому я использую это решение:
- (void) executeAppleScript:(NSMutableDictionary*) myDict
{
NSString* returnValue = [[script executeAndReturnError:nil] stringValue];
[myDict setValue:returnValue forKey:@"myKey"];
}
NSMutableDictionary* myDict = [NSMutableDictionary dictionary];
script = [[NSAppleScript alloc] initWithContentsOfURL:scriptURL error:nil];
[self performSelectorOnMainThread:@selector(executeAppleScript:) withObject:myDict waitUntilDone:YES];
script
является переменной экземпляра. У меня вопрос, я выделяю script
в фоновом потоке и выполняю его в основном потоке. Является ли выделение NSAppleScripts поточно-ориентированным?