В настоящее время я использую внутренний SDK с делегированием в swift.
Текущий процесс выполнения действия
1.) Инициировать запуск, который вызовет делегата
2.) Мой реализованный метод делегата сделает вызов API для токена
3.) Токен затем используется для последующих запросов в моем действии.
Проблема, с которой я столкнулся, заключается в том, что я не могу передать замыкание / обратный вызов в процесс запуска, который, очевидно, является асинхронным, но тогда как мне ожидать завершения метода делегата внутри одной и той же функции?
Я думаю, что уведомления могут быть ответом, но я не быстрый ниндзя.
Итак ... (псевдокод)
func performAction() {
internalSDK.start()
// calls my implemented delegate
// sets the token on self
doActionUsingTheTokenRetrievedInMyDelegateMethod(token: self.token)
}
Такое ощущение, что мне нужно какое-то ожидание или наблюдателя, которого затем убирают в конце разговора.
Следует также отметить, что метод делегата является общим, поэтому я не могу реализовать код внутри самого метода.