Как обновить View при получении нотификации от NSNotificationCenter?
В приложении есть вьюконтроллер, который подписан на нотификации. При получении определённой нотификации метод изменяет текст текстового поля.
Есть подозрение, что проходит немало времени между получением нотификации и непосредственно обновлением текста.
Как заставить вьюконтроллер обновить свой вью сразу после получения нотификации?
JohnZoidberg: Вы используете Xcode? Если поставить брейкпоинт на том месте, где изменяется свойство, и остановиться на этом моменте при отладке, слева будет показан поток, в котором произошел останов. Там должен быть Thread 1 (он же main). Если там какой-нибудь другой Thread, смотреть, где именно вы перешли на второстепенный поток и обращаться к свойству UI-объекта из главного потока. В противном случае - более подробно описать проблему.
Как я понимаю, это просто заставит отправляться нотификациям в главной очереди? С этим проблем нет, отправка и получение происходят очень быстро, задержка только перед отображением нового текста на экране.
notification center штука в принципе небыстрая. По возможности используйте делегат. При работе с NC, убедитесь, что вы не только подписываетесь на нотификации, но и вовремя от них отписываетесь - один и тот же контроллер может подписаться на один и тот же нотификейшн много раз, соответственно много раз будет вызываться обработчик
Ради интереса добавил логирование в обработчик нотификации. Задержка происходит между моментом, когда обработчик обновит текст лейбла, и фактическим отображением нового текста на экране.