Swift 逃逸闭包
一般在定义网络请求框架时,会声明成功闭包,失败闭包。用来回调返回的数据给调用者。
成功闭包,失败闭包当然是作为请求方法的参数,这时候会报错,因为这种闭包必须声明为逃逸闭包。
也就是在闭包类型前加 @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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935.
我的gitHub: (学习代码都在gitHub)
https://github.com/nwgdegitHub/