The timer never invokes the method. What am I doing wrong ? This is the code:
NSTimer *manualOverlayTimer = [NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(hideManual) userInfo:nil repeats:NO];
method:
-(void)hideManual
thanks
It was a thread issue. I've fixed with:
dispatch_async(dispatch_get_main_queue(), ^{
// Timer here
});
You don't need an NSTimer for a task of this sort. To hide your view object after a specific period of time on main thread you can use a gcd method dispatch_after
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, NSEC_PER_SEC * 2.0), dispatch_get_main_queue(), ^(void){
// Your code
});
where 2.0 is an amount of seconds that will pass before the block will get executed
Just use this
[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(hideManual) userInfo:nil repeats:NO];
EDIT
This code work well when btn
(an UIButton
) pressed and -(void)btnPressed
function called.
-(void)btnPressed{
[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(hideManual) userInfo:nil repeats:NO];
}
-(void)hideManual{
NSLog(@"Hi, I'm here!");
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With