2016-02-28 1 views
0

J'essaie de faire en sorte que l'AVSpeech parle deux NSString dans la chaîne * combinez-le et passez-le à AVSpeech. Mais c'est seulement * speekone qui est passé à la chaîne de * combinaison. Donc, je ne parle que de la première corde. Suis-je en train de déclarer la chaîne erronée ou dois-je changer de méthode?Problème AVSpeechUtterance

- (IBAction)UIButtonPlayPressed:(UIButton *)sender{ 
NSString *speekone = _activity.activityName; 
NSString *speektwo = _activity.activityDescription; 
NSString *combined = [NSString stringWithFormat:speekone, speektwo]; 

if (speechPaused == NO) { 
//Title for button [self.UIButtonPlay setTitle:@"Pause" forState:UIControlStateNormal]; 
    [self.synthesizer continueSpeaking]; 
    speechPaused = YES; 
    NSLog(@"playing"); 
} else { 
//Titleforbutton [self.UIButtonPlay setTitle:@"Play" forState:UIControlStateNormal]; 
    speechPaused = NO; 
    [self.synthesizer pauseSpeakingAtBoundary:AVSpeechBoundaryImmediate]; 
    NSLog(@"paused"); 

} 
if (self.synthesizer.speaking == NO) { 
    AVSpeechUtterance *utterance = [[AVSpeechUtterance alloc] initWithString:combined]; 
[self.synthesizer speakUtterance:utterance]; 

Répondre

0

Le premier argument de votre stringWithFormat n'est pas un spécificateur de format.

Cette ligne:

NSString *combined = [NSString stringWithFormat:speekone, speektwo]; 

devrait devenir:

NSString *combined = [NSString stringWithFormat:@"%@ %@", speekone, speektwo]; 
+0

Il a travaillé !! Merci! :) –