一般在定义网络请求框架时,会声明成功闭包,失败闭包。用来回调返回的数据给调用者。

成功闭包,失败闭包当然是作为请求方法的参数,这时候会报错,因为这种闭包必须声明为逃逸闭包。

也就是在闭包类型前加 @escaping

func httpRequestSendDeviceTokenWithOld(oldToken : String,
                                           platformType : NSNumber,
                                              succed : @escaping HttpRequestCompleteBlock,
                                              faild : @escaping HttpRequestFaildCompleteBlock) {
        
        WLFNetWorkManager.sharedInstance.post(USER_REGISTER_URL, parameters: ["oldToken":oldToken,
                                                                              "deviceToken":"",
                                                                              "platformType":2,
                                                                              "userId":0], progress: { (progress) in
            
        }, success: { (task, responseObject) in
            
            succed(responseObject!)
            
        }) { (task, error) in
            
            faild(error)
        }
    }
当一个闭包作为参数传到一个函数中,但是这个闭包在函数返回之后才被执行,我们称该闭包从函数中逃逸. 当你定义接受闭包作为参数的函数时,你可以在参数名之前标注 @escaping,用来指明这个闭包是允许“逃逸”出这个函数的

作者:li_礼光
链接:https://www.jianshu.com/p/5701f4e8eb29
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-27
  • 2021-08-30
  • 2021-09-05
猜你喜欢
  • 2021-08-10
  • 2022-12-23
  • 2022-01-07
  • 2021-06-16
  • 2022-12-23
  • 2021-11-29
相关资源
相似解决方案