Вы можете позвонить
// sleep first appeared in Version 7 UNIX, 1979
sleep(1);
Или, более современно:
// usleep appeared in 4.3 BSD, released 1986
usleep(1000000);
Или еще более модно:
// nanosleep can be found in POSIX.1b, published 1993
struct timespec ts;
ts.tv_sec = 1;
nanosleep(&ts, NULL);
Или, более современно и более Cocoa-y:
// +sleepForTimeInterval first appeared in Mac OS X 10.5, 2007
[NSThread sleepForTimeInterval:1.0];
Все это остановит текущий поток. Если ваше приложение имеет только один поток, это означает, что оно остановит все ваше приложение. Он не будет реагировать на любые события пользовательского интерфейса на время ожидания.
Ссылка NSObject показывает метод с именем executeSelector: withObject: afterDelay: . Этот метод выполняет селектор после указанной задержки, планируя его в цикле выполнения. Это означает, что цикл выполнения продолжает циклически повторять и обрабатывать события, таймеры срабатывания, опустошать пул автоматического выпуска, отправлять больше запланированных сообщений и т. Д. И т. Д.
В этом конкретном случае, вероятно, лучше запланировать селектор в цикле выполнения (предоставьте селектор, который изменяет изображение обратно и обеспечивает задержку в секунду).