通过Swift获得的语法糖之一就是可以使用以下代码:
public func updateEvents(someNormalParam: Bool = true, someBlock: (Void->Void))
像这样:
updateEvents(someNormalParam: false) {...}请注意,该块位于updateEvents函数的()外部,与您通常期望的相反。仅当块是函数声明中的最后一个东西时,它才起作用。
这意味着,如果碰巧遇到了诸如Alamofire请求之类的阻止,则可以使用重试功能有效地包装它。一个稍微复杂的问题是您想在块内调用一个块。没什么大不了的:
func retryWrapper(alamoBlock: (Void->Request)) { alamoblock().responseJSON() { //Your retry logic here }}您可以像这样使用它:
retryWrapper() { Alamofire.request(method, targetUrl, parameters: parameters, encoding: encoding)}这意味着您要做的就是找到您的Alamofire调用,并将其包装在{}中,然后将retryWrapper()放在前面。重试逻辑本身仅存在一次。



