2010-08-06 67 views

回答

2

更好的办法可能是使用performSelector:withObject:afterDelay:方法:

[self performSelector:@selector(myMethod) withObject:nil afterDelay:3.0f]; 

或者如果方法需要1个参数:

[self performSelector:@selector(myMethod:) withObject:parameter afterDelay:3.0f]; 

如果方法有多个参数,您需要使用NSInvocation

+0

我选择这个作为acepted答案,因为它需要最少的代码。 :] – user377419 2010-08-06 14:43:46

+0

请注意,如果您希望在延迟过去之前取消或停止执行选择器,则可能需要查看下面slf的答案。 – Etienne 2013-10-14 06:15:44

3

与计数从0到3的计时器不同吗?无论如何,它仍然会等待三秒钟。

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

1
- (void) handleTimer: (NSTimer *) timer 
{ 
    do some work here... 
} // handleTimer 

// at some point in your controller 
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval: 3.0 
       target: self 
       selector: @selector(handleTimer:) 
       userInfo: nil 
       repeats: NO];