【发布时间】:2011-02-13 08:46:46
【问题描述】:
我的应用需要定期在后台线程上调用预编译的 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 的分配是线程安全的吗?
【问题讨论】:
标签: objective-c multithreading cocoa thread-safety applescript