Я пишу инструмент командной строки кода Морзе для Mac OS X, написанный на Swift в качестве языка сценариев. Я хочу дать пользователю возможность прослушать азбуку Морзе с помощью Apple NSSpeechSynthesizer. Я могу заставить это работать внутри приложения без пота. Но внутри инструмента командной строки или сценария Swift функция startSpeakingString() не слышна, если только я не прохожу код построчно.
Вот код в Swift (то же самое для надлежащего инструмента командной строки или скрипта)
import Foundation
import AppKit
var synth:NSSpeechSynthesizer = NSSpeechSynthesizer.init()
synth.startSpeakingString("dit dah")
А вот код инструмента командной строки Objective-C
@import Foundation;
@import AppKit;
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSSpeechSynthesizer *synth = [[NSSpeechSynthesizer alloc] init];
[synth startSpeakingString:@"dit dah"];
}
return 0
}
Экземпляр NSSpeechSythesizer кажется законным во всех случаях. Функция startSpeakingString() возвращает true во всех случаях. Вот мой репозиторий (в процессе): https://github.com/jpavley/swift-scripts а>