如何快速处理异步委托函数

时间:2019-05-14 19:27:32

标签: ios swift

我目前正在针对内部SDK进行实施,且委派迅速。

当前执行动作的过程

1。)启动“开始”,它将调用委托 2.)我实现的委托方法将对令牌进行API调用 3.)然后,该令牌用于在我的操作中发出后续请求。

我遇到的问题是我无法将闭包/回调传递给显然是异步的启动过程,但是我该如何在同一函数中等待所有委托方法的完成?

我以为通知可能是答案,但我不是敏捷的忍者。

所以...(伪代码)

func performAction() {

  internalSDK.start()
  // calls my implemented delegate
  // sets the token on self

  doActionUsingTheTokenRetrievedInMyDelegateMethod(token: self.token)
}

感觉我需要某种等待或观察者,然后在通话结束时将其删除。

还应注意,委托方法是通用的,因此我无法在该方法本身内实现代码。

1 个答案:

答案 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
    }
}