У меня есть ситуация, когда мой UIPickerView «голодает» по задаче вычисления; другими словами, UIPickerView никогда не обновляется и, следовательно, никогда не отправляет сообщения, потому что происходит очень тяжелая вычислительная задача. Сборщик контролирует аспекты вычисления, поэтому они должны играть хорошо.UIPickerView "превентивные" сообщения?
Я думал о запуске вычислений в отдельной теме. Похоже, это оставило бы сборщика бесплатным для обновления. Тем не менее, это было бы огромным делом, чтобы сделать мои вычисления многопоточными, поэтому я хотел бы найти другое решение.
Возможно ли, чтобы сборщик (или другие элементы управления пользовательского интерфейса) «упредил» выполнение блока кода? Вычисление выполняется в цикле; количество итераций - это то, что делает его тяжелым. Если сборщик может даже установить флаг где-то, цикл может сломаться сам, что будет работать с потоком программы.
Если петля может опросить сборщик, это также сработает. Но я не нашел способ сделать это.
Идеи?
(. П.с. я вчера отправил подобный вопрос, но на самом деле не спросить его правильно - не знал, что проблема была в то время)
Это была бы хорошая идея, но ... проблема в том, что сборщик didSelectRow делегат (который, как мне кажется, является единственным сообщением о действии), никогда не вызван; в основном, сборщик умирает от голода за циклы. Однако я не понимаю, как это произойдет. Я думаю, что таймер (или что бы то ни было), который обновляет сборщик, поставит в очередь сообщения. Таким образом, это может быть поздно, но в конце концов. Не имеет смысла ... –
Вы установили делегат? Вы на 100% уверены, что задали делегат для своего класса, и он не сбрасывался другим объектом? Даже если вы выполняете большую работу по основному потоку, в какой-то момент вы должны получать методы делегирования. –
Да, делегат работает - это уже поздно. Кое-что о вычислении задерживает его - и * просто * его. В качестве теста я создал кнопку и разместил ее в том же супер-представлении. Сообщение от кнопки может прервать вычисления просто отлично. И после обработки сообщения кнопки сборщик также обновляется. Можете ли вы придумать что-нибудь, что специально задерживало бы только сборщика? –