有没有比我下面的代码更直观的方式在Cocoa中等待一段特定时间的方法?
- (void) buttonPressed {
[self makeSomeChanges];
// give the user some visual feedback and wait a bit so he can see it
[self displayThoseChangesToTheUser];
[self performSelector:@selector(buttonPressedPart2:) withObject:nil afterDelay:0.35];
}
- (void) buttonPressedPart2: (id)unused {
[self automaticallyReturnToPreviousView];
}
仅仅为了明确,这段代码没有 功能性 的问题--我唯一的不满意是 风格上 的问题。在我的情况下,程序流程足够简单,所以它可以工作,但是如果尝试将其封装或添加一些条件语句,情况可能会变得很糟糕。我一直在困扰这样一件事,就是我无法像下面这个虚构的例子那样等待一段时间,然后返回到代码中同样的点:
- (void) buttonPressed {
[self doStuff];
[UIMagicUnicorn waitForDuration:0.35];
[self doStuffAfterWaiting];
}