如何处理viewcontroller生命周期中关于取消和调用async API的顺序

问题描述

我有一个 tabbarVC 嵌入了两个视图控制器,VC1 和 VC2。
在 VC 中,viewWillAppear 我将调用 API,而 viewWilldisappear 我将取消 API。
我遇到了一个问题,当我在 VC1 切换到 VC2 时,VC2 的 API 被取消。
在这种情况下如何处理视图控制器生命周期有顺序?
在这个项目中使用了 Moya 和 Alamofire。

VC1:

func viewWillAppear(_ animated: Bool) {
    print("VC1 call API")
    callAPI()
}

func viewWilldisappear(_ animated: Bool) {
    print("VC1 cancel API")
    cancelAPI()
}

VC2:

func viewWillAppear(_ animated: Bool) {
    print("VC2 call API")
    callAPI()
}

func viewWilldisappear(_ animated: Bool) {
    print("VC2 cancel API")
    cancelAPI()
}

日志:VC1 -> VC2(API被取消)

VC2 call API
VC1 cancel API

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)