Я пытаюсь понять, как работает NSRunLoop. Итак, есть несколько отложенных задач, и я хочу выполнить их через несколько секунд, используя NSRunLoop. И я хочу создать NSRunLoop вручную. Как я должен это делать?Как использовать NSRunLoop и выполнить выбор?
NSRunLoop *loop = [NSRunLoop currentRunLoop];
//create delayed tasks
[object performSelector:NSSelectorFromString(@"firstMethod") withObject:firstArgument afterDelay:5.0];
[object performSelector:NSSelectorFromString(@"secondMethod") withObject:secondArgument afterDelay:3.0];
//and here I must run a loop
while(flag&&[loop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]);
А также у меня есть как-то остановить эту петлю. Как вы видите, я полностью смущен, и многие документы и темы Apple не помогли мне.
Является ли это поток, который вы создали сами? Почему вы пытаетесь запустить цикл запуска вручную? Что случилось с кодом, который вы опубликовали? –
@JoshCaswell, это основная тема. И я читал, что не нужно создавать runloop основного потока, но, как я уже сказал, я хочу выяснить, как это работает. Что касается кода. Он попадает в бесконечный цикл в 'while', и тогда ничего не происходит. –
Создается и запускается основной цикл цикла. Иногда есть причина покрутить его, но это, похоже, не так. Ваши вызовы 'performSelector: ...' вступят в силу, не касаясь цикла выполнения. –