2010-11-17 3 views
0

Я новичок и у меня проблемы с созданием экземпляров класса.Cocoa: ждать между классами-экземплярами

Вот установка. У меня есть один класс, проходящий через массив. (я буду называть это «внешним классом», поскольку моя терминология еще не дошла до скорости!). В каждом цикле создается экземпляр другого класса. (который я буду называть «внутренним классом»)

В настоящее время мой массив имеет три элемента, и поэтому создаются три экземпляра внутреннего класса. Поскольку цикл на внешнем классе выполняется со скоростью освещения, все три внутренних класса создаются почти одновременно.

Однако внутренний класс имеет вид предупреждения, который должен видеть пользователь. После прекращения просмотра предупреждений класс завершается. Пользовательский ответ на представление предупреждения никогда не остановит создание других внутренних классов, но другие внутренние классы не должны создаваться до тех пор, пока вид предупреждения не будет замечен и не отклонен.

Как предотвратить цикл во внешнем классе от создания дополнительных внутренних классов до тех пор, пока предыдущий внутренний класс не завершится.

ответ

0

Вы не должны использовать петлю для этого; циклы работают со скоростью процессора; так быстро, как он может запустить код, его выполнили. Так как вам нужно взаимодействие с пользователем здесь, вы должны использовать какой-то обратный вызов. Создайте свой первый внутренний класс и установите счетчик (или переменную экземпляра, которая представляет собой массив). В обратном вызове alert (используйте свойство делегата UIAlertView) вернитесь к вашему коду создания класса, создайте второе и снова остановитесь, пока не будет просмотрено предупреждение.

+0

Спасибо Бен. Я понимаю. Я могу установить флаг внутри внутреннего класса, чтобы сказать, что класс завершен. Однако, без цикла, как код создания класса знает, когда создавать другой экземпляр, или даже если он должен создать его вообще. Внутренний класс не знает, сколько раз он должен использоваться. – Typhoon101

+0

Используйте переменные экземпляра вместо локального, таким образом вы можете отслеживать их несколькими вызовами вашего метода. –

0

Ожидаете ли вы, что ответ будет также буквально описан? Вам будет проще вставлять код, а не описывать его. Просто положительная критика. :)

Смежные вопросы