Swift 2 错误,转换为 JSON
Posted
技术标签:
【中文标题】Swift 2 错误,转换为 JSON【英文标题】:Swift 2 error, converting to JSON 【发布时间】:2015-09-30 15:54:01 【问题描述】:我在 swift 2 上遇到了一个错误,它很简单但我无法理解
这是我开始为 Swift 2 更新之前的代码:
func updateWeatherInfo(latitude: CLLocationDegrees, longitude: CLLocationDegrees)
let url = "http://api.openweathermap.org/data/2.5/forecast"
let params = ["lat":latitude, "lon":longitude]
println(params)
Alamofire.request(.GET, url, parameters: params)
.responseJSON (request, response, json, error) in
if(error != nil)
println("Error: \(error)")
println(request)
println(response)
self.loading.text = "Internet appears down!"
else
println("Success: \(url)")
println(request)
var json = JSON(json!)
self.updateUISuccess(json)
这里是抛线错误:
let json = JSON(json)
这是我开始后的全部功能
func updateWeatherInfo(latitude: CLLocationDegrees, longitude: CLLocationDegrees)
let url = "http://api.openweathermap.org/data/2.5/forecast"
let params = ["lat":latitude, "lon":longitude]
print(params)
Alamofire.request(.GET, url, parameters: params)
.responseJSON (request, response, json) in
print("Success: \(url)")
print(request)
let json = JSON(json)
self.updateUISuccess(json!)
updateUISuccess 需要一个 JSON 值,但目前我有一个 (Request)
这里是错误描述
经过一个建议,我尝试了这个:
.Success(let data):
let data_ar = data as! JSON // or NSDictionary or NSString
self.updateUISuccess(data_ar)
case .Failure(let data, let error):
print("Request failed with error: \(error)")
但应用程序在 let data_ar = data as! JSON // or NSDictionary or NSString
处崩溃
【问题讨论】:
原json
哪里来的?
你能从 Alamofire 中删除错误吗?
我不太了解@LGL。如果您查看代码的底部块(更新到 xcode7 后我所做的),我没有错误作为参数
【参考方案1】:
变量json
看起来像一个枚举值。试试这个:
switch json
case .Success(let data):
let data_ar = data as! NSArray // or NSDictionary or NSString
case .Failure(let data, let error):
print("Request failed with error: \(error)")
【讨论】:
看起来像这样吗?正如错误提示的那样,它似乎是Rseult<AnyObject>
类型
@luk2302 是的,你是对的。现在我认为它看起来像一个枚举:)
我试过了,调用api请求时应用崩溃了,我添加了上面我试过的代码以上是关于Swift 2 错误,转换为 JSON的主要内容,如果未能解决你的问题,请参考以下文章
Swift 将 JSON 转换为字典数组问题 错误代码 3840(末尾有垃圾)