2014-09-23 1 views
0

Я использую NSTimer scheduledTimerWithTimeInterval для отсрочки вызова функций, но мне также нужно событие завершения. По некоторым причинам я не могу найти упоминания об этом в спецификациях.NSTimer scheduleTimerWithTimeInterval по событию завершения

Какие у меня варианты?

+1

Необходимо выяснить, что именно вы ищете. Возможно, вы должны опубликовать свой соответствующий код и объяснить, что вам нужно. – rmaddy

+0

@rmaddy не сумасшедший человек. Мне нужно событие завершения, прикрепленное к таймеру. Что может быть проще? – user3077725

+1

Таймер вызывает метод каждый раз, когда срабатывает таймер (один раз, если не повторяется). Поэтому то, что вы просите, не имеет никакого смысла, поскольку оно уже звонит. Что еще тебе нужно? – rmaddy

ответ

1

Я не уверен, правильно ли получил ваш ответ. После вызова селектора на

[NSTimer scheduledTimerWithTimeInterval:10f 
           target:self 
           selector:@selector(onFire) 
           userInfo:nil 
           repeats:NO]; 

достаточно просто поместить вызов метода завершения на нижней части метода, который обжигали. Это не соответствует вашему запросу?

- (void)onFire { 
    // DO THE JOB. 
    // ... 
    [self onCompletion]; 
} 

- (void)onCompletion {} 
+0

Не будет ли это '[self onCompletion];' вместо 'onCompletion();'? – rmaddy

+0

@rmaddy Упс, слишком много Java сегодня :) – lambruscoAcido

+0

не очень хорошо. Мне нужно это как анонимный метод в C#, так что я могу вложить некоторый код. – user3077725

0

Я немного неясен, почему другие ответы вам не по душе, но вот альтернативный метод.

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(<#delayInSeconds#> * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
    <#code to be executed after a specified delay#> 
}); 

Это должно облегчить задержку некоторых вложенных блоков.

Смежные вопросы