Вам нужно будет реорганизовать это так, чтобы вы не использовали одно общее свойство родительского класса, чтобы выяснить, какой из двух одновременных запросов вы обрабатываете. Это просто не сработает. В итоге удалите это свойство reqName
.
Существует две очевидные альтернативы:
Одно из решений - просто дать этим двум запросам два отдельных метода-обработчика завершения. Я знаю, что, вероятно, вы чувствуете, что вы сохраняете это простым, имея один метод, но если у вас есть большие if
- else
блоки, скрытые в этом общем методе обработки ответов, это хороший признак того, что вы должны рассмотреть возможность его разбить.
Если вы решили использовать единый метод обработки ответов, а не полагаться на какое-либо свойство, совместно используемое обоими двумя одновременными запросами, вместо этого вы захотите взглянуть на объект, который методы ответа Alamofire передают своим соответствующим замыканиям. Внутри этого объекта есть свойство request
, из которого вы можете определить, какой из двух ответов вы обрабатываете (например, просматриваете URL-адрес запроса). Или захватите некоторый параметр, который вы использовали при подготовке запроса в методе обработки ответа.
Первый вариант, вероятно, лучший: он поддерживает ваши методы как можно более простыми, каждый из которых несет единственную ответственность, т.е. для разбора конкретного ответа.