我目前正在针对内部SDK进行实施,且委派迅速。
当前执行动作的过程
1。)启动“开始”,它将调用委托 2.)我实现的委托方法将对令牌进行API调用 3.)然后,该令牌用于在我的操作中发出后续请求。
我遇到的问题是我无法将闭包/回调传递给显然是异步的启动过程,但是我该如何在同一函数中等待所有委托方法的完成?
我以为通知可能是答案,但我不是敏捷的忍者。
所以...(伪代码)
func performAction() {
internalSDK.start()
// calls my implemented delegate
// sets the token on self
doActionUsingTheTokenRetrievedInMyDelegateMethod(token: self.token)
}
感觉我需要某种等待或观察者,然后在通话结束时将其删除。
还应注意,委托方法是通用的,因此我无法在该方法本身内实现代码。
答案 0 :(得分:0)
我会尝试使用最简单的可用工具,例如令牌上的属性观察器,如下所示:
class Foo {
var token: Token {
didSet {
doActionUsingTheTokenRetrievedInMyDelegateMethod(token: self.token)
}
}
func performAction() {
internalSDK.start()
// calls my implemented delegate
// sets the token on self
}
}