Для запуска цикла требуется как минимум один «источник ввода». Основной цикл выполнения выполняется, но вы должны добавить источник вручную, чтобы метод вспомогательного цикла выполнения -run
сделал что-либо. Есть некоторая документация по этому здесь .
Один наивный способ заставить это работать - просто поместить [[NSRunLoop currentRunLoop] run]
в бесконечный цикл; когда есть что-то сделать, он сделает это и немедленно вернется в противном случае. Проблема в том, что поток займет приличное количество процессорного времени, просто ожидая, что что-то произойдет.
Другое решение - установить NSTimer в этом цикле выполнения, чтобы поддерживать его в рабочем состоянии.
Но, если возможно, вы должны использовать механизм, предназначенный для такого рода вещей. Если возможно, вы можете использовать NSOperationQueue
для фоновых операций.