Nstimer not invalidating
-(void)audio Player Did Finish Playing:(AVAudio Player *)player successfully:(BOOL)flag The delegate method is getting called but the timer is not stopping.... I have only once thread on which i am runing the timer.
Instead, create a new timer instance, and use that instance to add to the NSRun Loop's add Timer method.- you need to remove this line or create a timer with 2. Also remember that you must send invalidate message from the thread on which the timer was installed.If you send this message from another thread, the input source associated with the timer may not be removed from its run loop, which could prevent the thread from exiting properly. Wrong method called , nil exception - try to debug more info.You can probably recall quite easily one of your cases.
As you can see, passing such a simple information through half of the VIPER structure may be one of the reasons to start looking for an alternative.
The run loop then removes and releases the timer, either just before the invalidate method returns or at some later point. Interestingly there is NSRun Loop add Timer but there is no remove Timer which could have been useful stopping timer from firing without invalidating it.