我在IBAction中有下面的代码。我想测量AVSpeechSynthesizer在指令列表中运行的确切时间。但是,executionTime会立即记录下来,而不是在循环结束时(返回时间少于1秒,而不是我预期的10-15秒)。我做错了什么?NSLog立即执行而不是循环结束
NSDate *methodStart = [NSDate date];
for (NSString* direction in directions) {
AVSpeechUtterance *aDirection = [[AVSpeechUtterance alloc] initWithString:direction];
aDirection.rate = .3;
[self.synthesizer speakUtterance:aDirection];
}
NSDate *methodFinish = [NSDate date];
NSTimeInterval executionTime = [methodFinish timeIntervalSinceDate:methodStart];
NSLog(@"executionTime = %f", executionTime);
此委托将为每个'AVSpeechUtterance'调用一次,所以你也必须算调用仅在最后打印的时候,或者你可以有多个日志条目,只关心最后一个。 –
开始iOS程序员仍然在努力了解如何使用代表,但这给了我一个方向。谢谢! – babyjordan