cancelPerformSelector does not work
cancelPerformSelector does not work
- Subject: cancelPerformSelector does not work
- From: "Gerriet M. Denkmann" <email@hidden>
- Date: Thu, 22 May 2014 12:34:13 +0700
I have this code:
- (void)speechSynthesizer:(AVSpeechSynthesizer *)synthesizer didFinishSpeechUtterance:(AVSpeechUtterance *)utterance
{
NSTimeInterval delay = 5;
NSLog(@"%s will resume music in %g sec.",__FUNCTION__, delay );
NSRunLoop *currentRunLoop = [ NSRunLoop currentRunLoop ]; // not nil
[ currentRunLoop cancelPerformSelector: @selector(resumeMusic) target: self argument: nil ];
[ self performSelector: @selector(resumeMusic) withObject: nil afterDelay: delay ];
}
- (void)resumeMusic
{
NSLog(@"%s Done!",__FUNCTION__ );
}
When I speak something 7 times I get:
12:13:56.508 -[ContentViewController speechSynthesizer:didFinishSpeechUtterance:] will resume music in 5 sec.
12:13:57.724 -[ContentViewController speechSynthesizer:didFinishSpeechUtterance:] will resume music in 5 sec.
12:13:58.908 -[ContentViewController speechSynthesizer:didFinishSpeechUtterance:] will resume music in 5 sec.
12:14:00.115 -[ContentViewController speechSynthesizer:didFinishSpeechUtterance:] will resume music in 5 sec.
12:14:01.324 -[ContentViewController speechSynthesizer:didFinishSpeechUtterance:] will resume music in 5 sec.
12:14:01.527 -[ContentViewController resumeMusic] Done!
12:14:02.520 -[ContentViewController speechSynthesizer:didFinishSpeechUtterance:] will resume music in 5 sec.
12:14:02.730 -[ContentViewController resumeMusic] Done!
12:14:03.700 -[ContentViewController speechSynthesizer:didFinishSpeechUtterance:] will resume music in 5 sec.
12:14:03.929 -[ContentViewController resumeMusic] Done!
12:14:05.126 -[ContentViewController resumeMusic] Done!
12:14:06.339 -[ContentViewController resumeMusic] Done!
12:14:07.523 -[ContentViewController resumeMusic] Done!
12:14:08.705 -[ContentViewController resumeMusic] Done!
But I would expect just to get *one* call to "resumeMusic" - 5 sec after the last call to speechSynthesizer:didFinishSpeechUtterance:. Instead I get 7 calls - each 5 sec after the didFinishSpeechUtterance.
Seems that cancelPerformSelector has no effect at all.
What am I doing wrong?
iOS 7.1.1
Gerriet.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden