Задержка класса Objective-C? - PullRequest
3 голосов
/ 29 июня 2009

Мне было интересно, знает ли кто-нибудь класс в target-C, который останавливает / задерживает приложение на указанное количество времени во время выполнения? Я уже посмотрел на Time Manager и NSTimer и не вижу, как я мог бы задержать там. Хотя я никогда раньше не использовал эти два класса, так что, может быть, кто-то еще и мог дать мне совет? Спасибо!

Ответы [ 3 ]

4 голосов
/ 29 июня 2009

Это действительно зависит от того, что вы подразумеваете под «остановкой / задержкой приложения». Если у вас есть однопоточное приложение, вы можете просто использовать любой из вызовов сна (usleep, sleep, nanosleep и т. Д.). Это, вероятно, не то, что вы хотите, потому что это просто приведет к зависанию пользовательского интерфейса и не остановит фоновые потоки.

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

4 голосов
/ 29 июня 2009
#include <unistd.h>
sleep(3); // or usleep(3000000);
2 голосов
/ 29 июня 2009

Я думаю, что вы ищете [NSThread sleepForTimeInterval:] Это должно сработать. Вам также следует рассмотреть возможность использования таймера для вызова другой функции после задержки, потому что это решение не блокирует. Подход NSThread полностью заблокирует ваше приложение на временной интервал, если вы вызовете его из основного потока.

...