Мой ответ немного запоздалый, но я считаю, что все существующие ответы немного не соответствуют действительности. Я делаю подобные вещи с помощью xargs
, который способен запускать определенное количество команд в подпроцессах.
Я бы использовал одну строчку, просто:
$ seq 1 10 | xargs -n1 -P2 bash -c 'i=[110]; url="http://example.com/?page${i}.html"; curl -O -s $url'
Это требует некоторого объяснения. Использование -n 1
инструктирует xargs
обрабатывать один входной аргумент за раз. В этом примере числа 1 ... 10
обрабатываются отдельно. И -P 2
говорит xargs
, чтобы все 2 подпроцесса работали постоянно, каждый из которых обрабатывал один аргумент, пока все входные аргументы не были обработаны.
Вы можете думать об этом как о MapReduce в оболочке. Или, может быть, только фаза карты. Независимо от этого, это эффективный способ выполнить большую работу, гарантируя, что вы не разбомбите свою машину. Можно сделать что-то похожее в цикле for в оболочке, но в итоге вы будете выполнять управление процессами, которое начинает казаться довольно бессмысленным, когда вы поймете, насколько безумно велико это использование xargs
.
Обновление: я подозреваю, что мой пример с xargs
мог бы быть улучшен (по крайней мере, в Mac OS X и BSD с флагом -J
). С GNU Parallel команда также немного менее громоздкая:
parallel --jobs 2 curl -O -s http://example.com/?page{}.html ::: {1..10}
Это учебное пособие объясняет это: http://www.musicalgeometry.com/?p=821
Просто добавьте UIImage в окне наложения вместо красной области, показанной в учебнике.
Возможно, вы сможете добавить UIImageView
в качестве подпредставления главного окна напрямую вместо UIImagePicker
, это может работать лучше. Просто убедитесь, что добавили их в правильном порядке, или вызовите
[window bringSubviewToFront:imageView];
после включения камеры.
Если вы хотите обрабатывать касания на UIImageView
, вы можете просто добавить UIImageView
как часть обычного полноэкранного вида
с прозрачным фоном, и вместо этого добавьте , который в окно, с обычным подклассом UIViewController
, который вы можете использовать для обработки событий касания.