2009-08-21 4 views
0

Как я могу использовать таймеры? Например, я хочу показать определенный текст в течение 10 секунд, а затем я хочу показать другой текст для остальной части продолжительности.Сроки? - Какао

Спасибо,

Kevin

ответ

5

Самый простой способ отложить действие заключается в использовании NSObject в performSelector: withObject: afterDelay:

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

Установите текст в первый раз (или во время инициализации), а затем сделать что-то вроде:

[self performSelector:@selector(changeText) withObject:nil afterDelay:10.0]; 

вы можете отменить запрос с:

+ (void)cancelPreviousPerformRequestsWithTarget:(id)aTarget selector:(SEL)aSelector object:(id)anArgument 

, которые вам нужно будет сделать, если вы хотите ваш объект, который будет освобожден как выполняемый. Selector сохраняет как ваш объект, так и параметр withObject.

+0

Вы должны сделать cancelPreviousPerformRequestWithTarget ...? У меня никогда не было ... – mk12

+0

Документы говорят, что performSelector: withObject: afterDelay: сохраняет приемник и объект withObject. Таким образом, ваш объект не будет освобожден до тех пор, пока этот селектор не будет выполнен. –

+1

+1 для публикации кода вместо того, чтобы говорить RTFM. – willc2