Timed selector never performed
Posted
by
sudo rm -rf
on Stack Overflow
See other posts from Stack Overflow
or by sudo rm -rf
Published on 2010-12-22T21:19:39Z
Indexed on
2010/12/22
21:54 UTC
Read the original article
Hit count: 129
I've added an observer for my method:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(closeViewAfterUpdating)
name:@"labelUpdatedShouldReturn"
object:nil];
Then my relevant methods:
-(void)closeViewAfterUpdating; {
NSLog(@"Part 1 called");
[self performSelector:@selector(closeViewAfterUpdating2) withObject:nil afterDelay:2.0];
}
-(void)closeViewAfterUpdating2; {
NSLog(@"Part 2 called");
[self dismissModalViewControllerAnimated:YES];
}
The only reason why I've split this method into two parts is so that I can have a delay before the method is fired.
The problem is, the second method is never called. My NSLog
output shows Part 1 called
, but it never fires part 2. Any ideas?
EDIT: I'm calling the notification from a background thread, does that make a difference by any chance?
Here's how I'm creating my background thread:
[NSThread detachNewThreadSelector:@selector(getWeather) toTarget:self withObject:nil];
and in getWeather
I have:
[[NSNotificationCenter defaultCenter] postNotificationName:@"updateZipLabel" object:textfield.text];
Also, calling:
[self performSelector:@selector(closeViewAfterUpdating2) withObject:nil];
does work.
EDITx2: I fixed it. Just needed to post the notification in my main thread and it worked just fine.
© Stack Overflow or respective owner