Swift3.0学习

Swift------------逃逸闭包

2017-01-06  本文已影响41人  我想走走

逃逸闭包
当一个闭包作为参数传到一个函数中,需要这个闭包在函数返回之后才被执行,我们就称该闭包从函数种逃逸。一般如果闭包在函数体内涉及到异步操作,但函数却是很快就会执行完毕并返回的,闭包必须要逃逸掉,以便异步操作的回调。

逃逸闭包一般用于异步函数的回调,比如网络请求成功的回调和失败的回调。语法:在函数的闭包行参前加关键字“@escaping”。

例如对请求的封装
创建一个类

import UIKit
import Alamofire

enum MethodType {
    case get
    case post
}

class HttpTools {
    //类方法在前面加class
    class func requestData(_ type:MethodType,URLString: String, parameters : [String:Any]? = nil, finishedCallback : @escaping (_ result : Any) -> ()) {
        let method = type == .get ? HTTPMethod.get : HTTPMethod.post
        Alamofire.request(URLString, method: method, parameters: parameters).responseJSON { (response) in
            guard let result = response.result.value else {
                print(response.result.error)
                return
            }
            finishedCallback(result)
        }
        
        
        
    }
}


上一篇下一篇

猜你喜欢

热点阅读