Это, вероятно, даст результат, который вы ищете:
-(void)textLabelChanger:(id)sender
{
NSString *myTextLabelString = [NSString stringWithFormat:@"%d", gameCountDown];
textLabel.text=myTextLabelString;
[self performSelector:@selector(updateTextLabelWithString:) withObject:@"sleep 5 worked" afterDelay:5.0];
[self performSelector:@selector(updateTextLabelWithString:) withObject:@"sleep 5 worked second time round" afterDelay:10.0];
}
-(void)updateTextLabelWithString:(NSString*)theString
{
textLabel.text=theString;
}
Есть много способов сделать это. Вместо одного updateTextLabelWithString
, который вы вызываете дважды с разными задержками, у вас может быть doFirstTextUpdate
, который записывает «сон 5 сработал», а затем вызывает другой селектор, такой как doSecondTextUpdate
, используя ту же технику [self performSelector:]
после еще 5 вторая задержка.
Чрезвычайно редко вам нужно использовать метод sleep()
с Objective-C.
-(void)textLabelChanger:(id)sender
{
NSString *myTextLabelString = [NSString stringWithFormat:@"%d", gameCountDown];
textLabel.text=myTextLabelString;
[self performSelector:@selector(firstUpdate) withObject:nil afterDelay:5.0];
}
-(void)firstUpdate
{
textLabel.text = @"sleep 5 worked";
[self performSelector:@selector(secondUpdate) withObject:nil afterDelay:5.0];
}
-(void)secondUpdate
{
textLabel.text = @"sleep 5 worked second time round";
}