Проблема в том, что вы не очищаете выходные буферы задачи.Вы не можете просто запустить задачу и waitUntilDone
, если задача также не генерирует чрезвычайно малый объем данных.
waitUntilDone
, очевидно, не будет работать вообще с задачей, которая никогда не завершается.
Для задачи, которая генерирует любое количество выходных данных, вам необходимо настроить ее так, чтобы выходные данные читались по мере их генерирования.Обычно вы используете readInBackgroundAndNotify
или его вариант.
В любом случае, верхняя часть описания класса для NSTask
содержит как ссылки на концептуальное руководство, так и серию примеров, которые охватывают это.