Вы упоминаете темы.Помните, что элементы управления UIKit, такие как UILabel, могут быть обновлены только из основного потока.Убедитесь, что вы пытаетесь установить текст метки только из основного потока, а затем убедитесь, что у вас все еще есть проблемы.
РЕДАКТИРОВАТЬ из-за редактирования вопроса:
Во-первых, -setNeedsDisplay сообщает толькоесли при следующем обновлении экрана его необходимо отобразить повторно, отображение не будет принудительным.
Во-вторых, экран iPhone отображается с частотой около 60 Гц.Это означает, что обновление происходит каждые 0,016666 секунд.Вы пытаетесь обновиться намного быстрее, поэтому на самом деле будет отображаться только каждое 160-е из ваших обновлений.
В-третьих, и, возможно, самое важное, вы, кажется, не создаете никаких потоков, если только выВызовите -startUpdateStatusThread из фонового потока.В любом случае, как только вы нажмете -update, часто все возвращается в основной поток.С частотой, которую вы планируете для этого таймера, вы, вероятно, перегружаете процессор и делаете так, чтобы система не успела нарисовать метку.Таким образом, даже если вы устанавливаете новый текст, вы не даете ему возможность визуализироваться.Вам нужно уменьшить частоту этого таймера, и вам, вероятно, нужно переосмыслить все, что вы пытаетесь сделать.