使函数在执行前等待一段时间

时间:2011-04-26 15:40:54

标签: objective-c cocoa-touch ios nstimer

嘿伙计们,我有一个按钮,当点击它时,我希望它等待10秒才能完成它的事情,例如切换到新视图。我该怎么做呢?任何帮助,将不胜感激!

5 个答案:

答案 0 :(得分:10)

- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay

阅读NSObject文档,了解其他一些变体。

[self performSelector:@selector(myFunction:) withObject:myObject afterDelay:10.0];

答案 1 :(得分:2)

试试这个:

[NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:NO];

然后timer:应如下所示:

- (void)timerFired:(NSTimer *)timer {
      //do stuff here
}

答案 2 :(得分:1)

您可以使用:

double delayInSeconds = 10.0; // number of seconds to wait
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    /***********************
     * Your code goes here *
     ***********************/
}); 

答案 3 :(得分:0)

您需要使用NSTimer

检查以下代码作为参考。

- (void) startTimer{

    [NSTimer scheduledTimerWithInterval:10.0f target:self selector:@selector(showElapsedTime:) userInfo:nil repeats:YES];
}

showElapsedTime将在延迟后调用,您提供。

-(void) showElapsedTime: (NSTimer *) timer {

    if(OnSomeCondition)
    {
      [timer invalidate];
    }

// Write your code here 
}

StartTimer操作方法致电UIButton,您将获得10秒等待。

-(void) myButtonAction:(id) sender
{
   [self StartTimer]; 
}

答案 4 :(得分:-1)

你可以做一个

sleep(10)

让应用暂停10秒钟。注意:这是一个真正的实际暂停,因此根本不可能进行UI交互。但是,按Home键可以将应用程序移动到后台。