如何在iOS编程中暂停时间

时间:2011-09-03 01:52:05

标签: objective-c ios

在我的iOS程序中,我想要一个暂停1秒的功能。为了做到这一点,我需要写什么代码?

3 个答案:

答案 0 :(得分:26)

您可以使用以下方法之一:sleep(1);wait(1);

或者您可以使用[NSThread sleepForTimeInterval:1.0]

还有performSelector:withObject:afterDelay

答案 1 :(得分:3)

另一种方法是:

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{//Place code here});

sleep()和wait()有时会受到轻视,但只要你了解发生了什么,就可以自由使用

答案 2 :(得分:2)

iOS较新的是完成块。例如,如果需要在弹出视图控制器后执行某些操作,则现在可以使用块。我最近使用此方法关闭消息撰写视图控制器,然后如果成功则弹出当前视图控制器。

旧方式:

[controller dismissModalViewControllerAnimated:YES];
// Use an NSThread or performSelector:withObject:afterDelay

新方式:

[controller dismissViewControllerAnimated:YES completion:^{
  if (result != MessageComposeResultCancelled){
    // If cancelled remain on current screen, else pop to parent view controller
    [self.navigationController popViewControllerAnimated:YES];
  }
}];