gpt4 book ai didi

json - "let JSON"在 Alamofire/Swift 中如何工作

转载 作者:行者123 更新时间:2023-11-28 12:58:04 25 4
gpt4 key购买 nike

来自 here我看到处理 JSON 响应时正确的 Alamofire 2/Swift 2 语法是:

Alamofire.request(.GET, URLString, parameters: ["foo": "bar"])
.responseJSON { request, response, result in
switch result {
case .Success(let JSON):
print("Success with JSON: \(JSON)")

case .Failure(let data, let error):
print("Request failed with error: \(error)")

if let data = data {
print("Response data: \(NSString(data: data, encoding: NSUTF8StringEncoding)!)")
}
}
}

let JSON 是如何定义的,在哪里定义的? (从 Swift 的角度来看。)

我在请求扩展中看到 ResponseSerializer 返回 .Success(JSON) 但为什么处理程序没有像通常的函数那样定义:

case .Success(JSON: AnyObject?) {
print("Success with JSON: \(JSON)")
}

或者更好:

case .Success(JSON: NSDictionary?) {
print("Success with NSDictionary: \(JSON)")
}

最佳答案

result 是包含案例 .Success.Failure 的枚举。 Swift 中的枚举案例可以保存一些值(顺便说一下,这就是 Swift 中的 Optionals 的工作方式,它们是具有两种情况的枚举 Some:包装一个值和 None)。通过在 switch 中调用 case.Success(let JSON):,您可以将此值分配给 JSON 常量,您可以在 case block 中使用它。此常量的类型是自动推断的。

有关它的更多信息,请查看 Swift Language Guide 中的“关联值”段落

关于json - "let JSON"在 Alamofire/Swift 中如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34536099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com