Все изменения пользовательского интерфейса должны быть в основном потоке, как вы заметили. Вместо того, чтобы вы вносили какие-либо изменения в пользовательский интерфейс, используя метод вне основного потока, отправьте NSNotification текущему viewController, сказав ему, чтобы он работал.
Это особенно хороший маршрут, если вы пересекаете границу MVC или если у вас уже есть viewController, который знает, что делать, так что написание отдельного метода приводит к дублированию кода.