一般在定義網絡請求框架時,會聲明成功閉包,失敗閉包。用來回調返回的數據給調用者。
成功閉包,失敗閉包當然是作為請求方法的參數,這時候會報錯,因為這種閉包必須聲明為逃逸閉包。
也就是在閉包類型前加 @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
來源:簡書 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。