Если эти распределения не выполняют действия, которые требуют основного потока (например, касание пользовательского интерфейса), то они могут быть выполнены через GCD в очереди. Вы хотели бы использовать dispatch_async
, потому что при синхронном вызове вам все равно придется ждать, пока распределение завершится, и ничего не получит. Кроме того, вы должны быть уверены, что ваш контроллер представления был разработан для обработки финишной обработки viewDidLoad
без выделения этих объектов, поскольку асинхронный вызов диспетчеризации будет, ну, в общем, асинхронным. Вам, вероятно, потребуется либо опубликовать уведомление о том, что выделение завершено, либо использовать dispatch_group_notify
, чтобы контроллер представления знал, когда выделения были завершены, и мог начать использовать объекты.
Если эти распределения не занимают много времени, это, вероятно, будет больше проблем, чем стоит.