Вы слишком обдумываете это. Просто вызовите второй API из обработчика завершения первого API. Нет операций, нет групп рассылки, нет ничего.
self.getFirstDataFromApi {
self.getSecondDataFromApi {
// call the completion handler
}
}
Что касается того, почему ваш код не работал, это потому, что вы не сделали то, что сказал связанный ответ!
Как вы можете использовать группы рассылки для ожидания вызова нескольких функций, которые зависят от разных данных?
Сказано сделать это:
getSecondDataOperation.addDependency(getFirstDataOperation)
queue.addOperation(getFirstDataOperation)
queue.addOperation(getSecondDataOperation)
Это не то, что вы сделали. Вы сделали это:
queue.addOperation(getFirstDataOperation)
queue.addOperation(getSecondDataOperation)
getSecondDataOperation.addDependency(getFirstDataOperation) // too late
(Однако этот пост, хотя и гениальный, не то, что я бы сделал в этой ситуации. Если бы я хотел упорядочить операции загрузки, я бы использовал описанную здесь технику: https://fluffy.es/download-files-sequentially/. Или, в iOS 13, я бы использовал каркас Combine, как я здесь опишу: { ссылка }.)