Есть ли более простой способ подождать определенное количество времени в 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];
}