英语轻松读发新版了,欢迎下载、更新

正在学习用swift4做iOS开发,学习解析JSON时遇到了代码问题

nihaowa 发布于 2018年06月30日
无人欣赏。

我正在学iOS开发,语言用的swift4,想写段代码来实现通过第三方网站API获取数据放在text里显示。

从网上搜免费API的时候,看到了过去几年很多人提到的中国天气网,我觉得也挺合适的,数据包括温度风向什么的,而且还发现了几年前的教程(补个链接,还是用Xcode6的老视频教程http://www.51xue8.com/e/DownSys/play/?classid=27&id=10583&pathid=5&jishu=6),教程代码不能用了,而且我尝试使用链接(http://www.weather.com.cn/data/sk/101010100.html)时发现有乱码,也证实了这个API是不能免费使用了,但是看返回的格式还是正常的,写段代码学习一下应该可以。

{"weatherinfo":
 {"city":"鍖椾含",
"cityid":"101010100",
"temp":"27.9",
"WD":"鍗楅",
"WS":"灏忎簬3绾�",
"SD":"28%",
"AP":"1002hPa",
"njd":"鏆傛棤瀹炲喌",
"WSE":"<3",
"time":"17:55",
"sm":"2.1",
"isRadar":"1",
"Radar":"JC_RADAR_AZ9010_JB"}
 }

我的逻辑和教程里的一样,代码如下:

    class ViewController: UIViewController {

    @IBOutlet weak var tv: UITextView!           // 数据文字显示在这里

    func loadWeather() {

    var url = NSURL(string: "http://www.weather.com.cn/data/sk/101010100.html")
    var json = JSONSerialization.JSONObjectWithData(Data, option: JSONSerialization.ReadingOptions.mutableContainers, error: nil)      //错误出现在这里了

    var weatherinfo = json.anyObject("weatherinfo")   

    var temp = weatherinfo.anyObject("temp")    

    tv.text = "温度: (temp)"     
    }

我遇到了一个错误,在nil这里提示Extra argument 'error' in call。 这个错误提示我在Stack Overflow上面也查了,还真有不少问的,但是看了之后没弄明白,我写的时候看了Xcode代码补全的提示,也看了文档,感觉我写的这几行代码并不是特别难啊,一共不到10行……我该怎么修改呢。

共1条回复
Crafect 回复于 2018年07月03日

我没看到你写网络请求代码,然后Data是类名吧,你的data实例呢?

登录 或者 注册