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
来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM