Декодирование с JSON, вероятно, не займет много времени, если вы не делаете что-то очень интересное в пользовательском init(from: Decoder)
, но вы не включили ничего из MinDetailApiResponse
в свой вопрос, поэтому трудно сказать.
Если ваша цифра 10-15 секунд получена из-за того, что вы ждете, чтобы что-то изменилось на экране, то наиболее вероятной причиной является то, что указанный выше запрос API не вызывается в главном потоке, который часто проявляет себя как большая задержка для обновления пользовательского интерфейса.
Поставьте точку останова на var results = try...
выше, и когда она попадет, посмотрите в навигаторе отладки - вы в главном потоке?
Если нет, вам следует вызвать ваш метод делегата в главном потоке:
DispatchQueue.main.async { delegate?.success(results) }