Warum funktioniert die Sprachausgabe nicht?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Warum funktioniert die Sprachausgabe nicht?

    Hallo,
    ich habe mir den Podcast "CocoaCast" aboniert. Da ich blutiger Anfäger bin baue ich, um in das Programmieren hineinzukommen, alle Programme nach. Das Programm in der 5. Episode soll einen Text, der über ein Textfeld eingegeben wird, sprachlich ausgeben. Nun habe ich allerdings das Problem, dass ich nicht weiß, wie man einen Text Sprachlich ausgibt und der Code aus dem Podcast irgendwie nicht funktioniert.

    Kann mir da jemand vieleicht helfen?
    Schon mal danke im vorraus...
  • Darf ich dich fragen, wie viel Erfahrung du mit Cocoa schon hast? Das klingt so, als ob du das syntaktisch nicht korrekt eingegeben hast.

    Vielleicht hilft dir mein Artikel hier
    cocoading.de/Tutorials/Absolute_Beginners.html
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Lernen durch Nachahmung ist nichts Verkehrtes. Ich fürchte bloß, dass die Thematik zu abstrakt ist, damit das funktioniert. Arbeite mal mein Tutorial durch und schau dich nach weiteren Quellen um.
    Es hat noch nie etwas gefunzt. To tear down the Wall would be a Werror!
    25.06.2016: [Swift] gehört zu meinen *Favorite Tags* auf SO. In welcher Bedeutung von "favorite"?
  • Verdammt, es klappt immer noch nicht... Der Code ist genauso wie in dem Podcast, bei ihm funktioniert es bei mir nicht. Warum?
    das ist der eine Teil:

    Quellcode

    1. #import "AppController.h"@implementation AppController- (id) init { self = [super init]; NSLog(@"init"); speechSynth = [[NSSpeechSynthesizer alloc] initWithVoice:nil]; return self;}-(IBAction)startSpeaking:(id)sender{ NSString *string = [textView stringValue]; [NSSpeechSynthesizer startSpeakingString:string]; NSLog( @"Has started to say: %@", string);}-(IBAction)stopSpeaking:(id)sender{ NSLog( @"Stopping"); [speechSynth stopSpeaking];}- (void) dealloc { NSLog( @"Deallocating"); [speechSynth release]; [super dealloc];}@end

    und das der andere:

    Quellcode

    1. /* AppControler */#import <Cocoa/Cocoa.h>@interface AppController : NSObject{ IBOutlet NSTextField *textView; NSSpeechSynthesizer * speechSynth;}- (IBAction)sayIt:(id)sender;- (IBAction)stop:(id)sender;@endEs muss langsam nerven aber ich verstehe das wirklich nicht...
  • Diese Zeile:

    Quellcode

    1. [NSSpeechSynthesizer startSpeakingString:string];


    hätte beim Kompilieren diese Warnung verursachen sollen:

    'NSSpeechSynthesizer' may not respond to '+startSpeakingString:'

    Und Warnungen zu ignorieren ist nie eine gute Idee. startSpeaking: stammt nicht von der Klasse, sondern von der Instanz. Probier es mal mit

    Quellcode

    1. [speechSynth startSpeakingString:string];
    if (!exit(-1)) fprintf(stderr, "exit call failed. Program will continue\n");