2010-08-06 4 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

Я выбираю это как воспринятый ответ, потому что ему нужен наименьший код. :] – user377419

+0

Обратите внимание, что если вы хотите отменить или остановить селектор от выполнения до истечения задержки, вы можете посмотреть ниже ответ slf. – Etienne

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];