Hai我正在使用“ Alamofire”发送帖子请求。首先,我发送Balance
请求,然后发送setAppStatus
请求。我使用单个函数来处理响应。在获得Balance
的响应之前,先发送了SetAppStatus
。我使用reqName
处理响应。
if reqName=="getBalance"
{
\\ handling Api responses
}
if reqName=="setAppStatus"
{
\\ handling Api responses
}
使用上述代码,我发送了Balance
请求,并得到了响应。但是,当我打印reqName
时,它是setAppStatus
。它覆盖。我该如何解决?
您将需要进行重构,以免使用父类的单个共享属性来确定您正在处理两个并发请求中的哪个。那只是行不通的。底线,退出此reqName
属性。
有两个明显的选择:
一种解决方案是只给这两个请求两个单独的完成处理程序方法。我知道您可能想通过一种方法来简化它,但是如果您在这种一般的响应处理方法中埋藏着大if
-else
块,则表明您应该考虑将其分解。
如果您决定使用单一的响应处理方法,而不是依赖于两个并发请求共享的某些属性,而是要查看Alamofire响应方法传递给它们的对象。各自的关闭。在该对象的内部是request
属性,您可以从中推断出正在处理的两个响应中的哪个(例如,查看请求的URL)。或在响应处理方法中捕获准备请求时使用的一些参数。
第一个选项可能是最好的:它使您的方法尽可能简单,每个方法都有一个责任,即解析一个特定的响应。