Swift 2.0中的JSON解析错误

卡米卡斯

我正在学习在Swift 2.0中进行编码,并且在将其编译到模拟器时陷入了困境。self.setLabels(!数据)行显示的信息主题1:EXC_BAD_INSTRUCTION谁能帮我这个?我正在尝试一种试错法,但还没有运气...

 lass ViewController: UIViewController {

@IBOutlet weak var cityNameTextField: UITextField!
@IBOutlet weak var cityNameLabel: UILabel!
@IBOutlet weak var cityTempLabel: UILabel!

@IBAction func getWeatherDataClick(sender: AnyObject)  {
    getWeatherData("http://api.openweathermap.org/data/2.5/weather?q=" + cityNameTextField.text! + "")
}

override func viewDidLoad() {
    super.viewDidLoad()
    getWeatherData("http://api.openweathermap.org/data/2.5/weather?q=London,uk&appid=2de143494c0b295cca9337e1e96b00e0")
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func getWeatherData(urlString: String) {
let url = NSURL(string: urlString)
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) { (data, response, error) in
    dispatch_async(dispatch_get_main_queue(), {
        self.setLabels(data!)

    })

    }
    task.resume()
}

func setLabels(weatherData: NSData) {
    let jsonResult = AnyObject? ()
    do {
        if let jsonResult = try NSJSONSerialization.JSONObjectWithData(weatherData, options: []) as? NSDictionary {
        print(jsonResult)
        }
    } catch {
            print(error)
        }
    if let name = jsonResult!["name"] as? String {
    cityNameLabel.text = name
    }
if let main = jsonResult!["main"] as? NSDictionary {
    if let temp = main["temp"] as? Double {
        cityTempLabel.text = String(format: "%.1f", temp)
        }
    }
};

}

火炬

首先猜测是:data == nil您的函数:setLabels:不准备接收nil参数。尝试将此函数的声明更改为:

func setLabels(weatherData: NSData?)

甚至更好地在您的代码块中data == nil调用之前处理可能性setLabelsNSURLSession

if let weatherData = data as? NSData {
    //your data is not nil
    //you can securely call setLabels
    self.setLabels(weatherData)
} else {
   //ooops sth goes wrong your data is nil, try to figure out why
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Swift 2中解析JSON?

来自分类Dev

在Swift 2中,如何将JSON解析错误返回到完成块?

来自分类Dev

Swift 2.0中的JSON解析错误

来自分类Dev

尝试在Swift中解析JSON,但出现错误

来自分类Dev

Swift的JSON解析错误

来自分类Dev

Swift 2解析和读取JSON

来自分类Dev

在Swift中解析Json

来自分类Dev

在SWIFT中解析JSON

来自分类Dev

解析JSON Swift下标错误

来自分类Dev

Swift 2中的withUnsafePointer

来自分类Dev

在NSURLConnection中建立错误案例,在Swift中进行JSON解析

来自分类Dev

在NSURLConnection中建立错误案例,在Swift中进行JSON解析

来自分类Dev

从Swift 2到Swift 3的转换错误

来自分类Dev

Swift2中的UITableViewDataSource错误

来自分类Dev

在Swift 2中重写func错误

来自分类Dev

Swift 2中的错误域处理

来自分类Dev

swift2中的分段错误11

来自分类Dev

swift2中的委托错误

来自分类Dev

swift2中的分段错误11

来自分类Dev

从swift 1.2迁移后swift2中的healthKit错误

来自分类Dev

如何在Swift 2中解析未知的json数据类型

来自分类Dev

如何从JSON在Swift 2中填充tableView?

来自分类Dev

Swift 3中的JSON解析

来自分类Dev

在Swift中解析JSON数组

来自分类Dev

在Swift中从OpenWeatherMap解析JSON

来自分类Dev

Swift 2将Json解析为可选数组

来自分类Dev

Swift 2使用swiftyJSON从在线URL解析JSON

来自分类Dev

Json with Swift 2,提取数据

来自分类Dev

试图从JSON文件中读取Swift 2重载错误