NSNotificationCenter отправляет уведомление в том же потоке, на котором вы звоните postNotification
!Так что это может быть основной поток или фоновый поток.
Кстати, вы не должны вносить изменения в пользовательский интерфейс из неосновных потоков, полная остановка - это даже не вопрос медлительности, выпросто не стоит этого делать, вещи могут упасть и т. д.
Ваше решение, безусловно, работоспособно, но есть немного другой (и, возможно, лучший) способ.См. Эту страницу для информации:
http://www.cocoanetics.com/2010/05/nsnotifications-and-background-threads/
Подводя итог, можно сказать, что подход по приведенной выше ссылке решает проблему, фактически вызывая метод для генерации уведомления в главном потоке, через некоторыеудобные вспомогательные методы в категории.Может быть полезным!Чувствуется немного «аккуратнее», чем ваше решение о вызове performSelectorOnMainThread
из фактического метода получения уведомлений, потому что с вашей текущей техникой вы можете получить множество вызовов performSelectorOnMainThread
везде, где вы получите уведомление в своем приложении.
Также это полезная информация:
http://cocoadev.com/index.pl?NotificationsAcrossThreads