【发布时间】:2017-08-25 17:35:08
【问题描述】:
在 Swift PromiseKit 库中有一个使用有点奇怪语法的 Alamofire 示例:
func login(completionHandler: (NSDictionary?, ErrorProtocol?) -> Void {
Alamofire.request(.GET, url, parameters: ["foo": "bar"])
.validate()
.responseJSON { response in
switch response.result {
case .success(let dict):
completionHandler(dict, nil)
case .failure(let error):
completionHandler(nil, error)
}
}
}
response 是一个 Alamofire 枚举,描述了具有关联值的两种情况:
public enum Result<Value> {
case success(Value)
case failure(Error)
(...)
我不明白let 在每个case: 行中的含义是什么? dict(或错误)来自哪里?这种语法糖是为了更冗长但不那么混乱吗?
【问题讨论】:
标签: ios swift alamofire promisekit