Короче говоря, я хотел бы, чтобы в Objective-C, какао, программировалось что-то, что функционирует так же, как следующий псевдокод Java:
public class MainClass
{
public void mainmethod() //Gets called at start of program
{
UILabel label = CreateAButton();
new DaemonClass(label).start();
//Do things without being interrupted by the Daemon class sleeping or lagging
}
}
public class DaemonClass extends Thread
{
public UILabel label;
public DaemonClass(UILabel lbl)
{
setDaemon(true);
label = lbl;
}
public void run()
{
int i = 0;
while(true)
{
i++;
i = i%2;
UILabel.setText("" + i);
Thread.sleep(1000);
}
}
}
Другими словами ... Я хотел бы создать поток демона, который может быть настолько медленным, насколько ему нравится, без прерывания прогресса или скорости любых других потоков, ВКЛЮЧАЯ, основной.
Я пытался использовать такие вещи, как Dispatch Queue
, а также NSThread
.
При использовании любого из них я пытался создать простой поток смены меток, который переключал бы текст метки от 1 до 0 на неопределенное время. Мне показалось, что пользователь постоянно блокируется на 1 или 0, случайно выбранных при запуске.
При использовании любого из них и попытке использовать [NSThread sleepForTimeInterval:1];
поток прекращает выполнение всего вместе после вызова sleepForTimeInterval.
Кроме того, просмотрев документы, я понял, что цикл выполнения не вызывается, пока [NSThread sleep...
спит!
Если это поможет, я вызывал свои темы из метода - (void)viewDidLoad;
.
Мой вопрос к вам:
Как мне остановить [NSThread sleepForTimeInterval:1];
от разрушения моей темы ИЛИ:
Как запустить поток демона, который вызывает метод или блок кода (предпочтительно блок кода!)
P.S. если это имеет какое-то значение, это для iOS