Вы упоминаете, что запускаете NSApplescript из другого потока. Если вы посмотрите в документации по NSApplescript, справа вверху написано:
Important: You should access NSAppleScript only from the main thread.
Так что просто знайте, что это не потокобезопасно, и это, вероятно, причина ваших проблем.
РЕДАКТИРОВАТЬ : Я вижу несколько других проблем в вашем коде. Во-первых, вы не выпускаете «Скрипт», который вы создали с помощью alloc / init. Далее, и это главная проблема ... ваш "ErrorInfo" - это словарь с парами ключ / значение. Вы не используете ключи, чтобы получить значения, и именно здесь, похоже, происходит ваш сбой. Возникают проблемы с возвратом «описания» словаря. Вот пример кода, который я использую для создания строки NSS этого словаря ошибок, поэтому сделайте что-то вроде этого.
NSString* errorInfo = [NSString stringWithFormat:@"Error:%@ %@", [errorDict valueForKey:@"NSAppleScriptErrorNumber"], [errorDict valueForKey:@"NSAppleScriptErrorMessage"]];
Наконец, вы используете какой-то метод, например "executeSelectorOnMainThread", чтобы обеспечить его запуск в основном потоке?