How can I check if a method is or isn’t running, in an if statement? For example-
if ([(UIButton *)sender isEqual:blueButton] && **showBlueText method is running** )
{
Keep playing.
}
else if ([(UIButton *)sender isEqual:blueButton] && **showBlueText method is NOT running** )
{
Game over.
}
-(void)showBlueText
{
blueText.hidden = NO;
[self performSelector:@selector(hideText) withObject:nil afterDelay:textDelay];
[self performSelector:@selector(showGreenText) withObject:nil afterDelay:hideDelay];
}
Just to clarify, ‘showBlueText’ is a part of its own loop that runs independently of this if statement. I’m just trying to check if showBlueText is currently running.
You want to record state here. Make a new instance variable in this class.
Between the time you call this method, and the animation stops, don’t think of it as “running”. It schedules code to be executed later. Instead you want to be notified after it has finally run.
And in this case it’s easiest to keep track of the state yourself. Use a new variable to track the state of things, and change it’s value when that state changes.
But can’t you just check
if (blueText.hidden)? Yeah, you could. But it’s bad practice to store state about your program in some obscure property of a random unimportant object.Examine your state to figure out what you show. Don’t examine what’s showing to figure out your state.