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