iOS项目开发实战(Swift)—查询天气小应用

原创 2015年11月20日 10:45:29

1.新建Xcode项目,创建single view application,项目名称为swift_Weather,选择语言为Swift。

2.打开Main.storyboard,新建三个控件,一个用于输入城市的TextField,一个查询按钮Button,一个用于显示天气信息的TextView。如下图:


3.然后直接将storyboard中的三个控件拖到ViewController.swift中,进行绑定,绑定是否成功可以看代码左边是否有一个小实的圆圈。如下图:


4.为查询按钮Button添加一个Action,用于查询对应城市的天气。此时就需要各地天气信息的API接口,可以通过“http://www.weather.com.cn/data/cityinfo/城市对应的编码.html”url得到一个JSON串,然后进行相应的解析,获取所需要的天气信息。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var cityInput: UITextField!
    @IBOutlet weak var btnSearch: UIButton!
    @IBOutlet weak var result: UITextView!

    var cityDictinary = ["北京" : 101010100,"杭州" : 101210101,"常德" : 101250601,"黄冈" : 101200501]
    override func viewDidLoad() {
        super.viewDidLoad()
        // 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.
    }

    @IBAction func btnPressed(sender: AnyObject) {
        loadWeathInfo()
    }
    
    func loadWeathInfo(){
        //注意当启动应用程序的时候,会执行viewDidLoad
        if let cityName = cityInput.text{
            if let code = cityDictinary[cityName]{
                let str = "http://www.weather.com.cn/data/cityinfo/\(code).html"
                let url = NSURL(string: str)
                let data = NSData(contentsOfURL: url!)
                //编码出现error:Call can throw, but it is not marked with 'try' and the error is not handled,通过加一个try解决。原因就是没有处理错误
                do{
                    let json =
                    try  NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments)
                    let weatherInfo = json.objectForKey("weatherinfo")
                    
                    let city = weatherInfo?.objectForKey("city")
                    let maxTemp = weatherInfo?.objectForKey("temp1")
                    let minTemp = weatherInfo?.objectForKey("temp2")
                    let weather = weatherInfo?.objectForKey("weather")
                    result.text = " 城市:\(city!)\n 最高温度:\(maxTemp!)\n 最低温度:\(minTemp!)\n 天气:\(weather!)\n"
                }catch{
                    print("error")
                }

            }

        }
        //没查询完一次就进行清空
        cityInput.text = ""
    }
}

5.代码添加完成之后,成功运行结果如下图:


版权声明:本文为博主原创文章,未经博主允许不得转载。

swift编码出现Call can throw, but it is not marked with***错误的解决

最近使用Swift编程中,遇到一个问题,就是出现了Call can throw, but it is not marked with ‘try’ and the error is not handle...
  • yishengzhiai005
  • yishengzhiai005
  • 2016年11月30日 14:24
  • 862

swift编码出现Call can throw, but it is not marked with 'try' and the error is not handled错误的解决

最近使用Swift编程中,遇到一个问题,就是出现了Call can throw, but it is not marked with ‘try’ and the error is not handle...
  • ismilesky
  • ismilesky
  • 2015年12月08日 14:04
  • 3278

用Swift实现一款天气预报APP(一)

Swift作为现在苹果极力推广的语言,发展的非常快。这个语言就和她的名字一样,比OC减少了很多的文件和代码量。头文件,bye bye啦,再不用查个代码上下的头文件源文件切换了。而且语言本身也增加了很多...
  • future_challenger
  • future_challenger
  • 2014年12月05日 22:09
  • 1288

Swift - 使用OpenWeatherMap获取天气的实时数据、预测数据

我们做一些Web应用或者是手机应用,有时会需要展示出实时的天气数据或者天气预报数据。这里推荐一个好用的天气API服务:OpenWeatherMap。 1,OpenWeatherMap介绍 (1...
  • mo_xiao_mo
  • mo_xiao_mo
  • 2016年09月21日 19:40
  • 3129

swift 干货

github排名 https://github.com/trending,github搜索:https://github.com/searchObjective-C版本点击这里主要工作说明: 1...
  • sinat_32972877
  • sinat_32972877
  • 2017年03月02日 17:45
  • 571

多个优秀的Swift开源项目推荐

目录(?)[+] 工具类 SwiftyJSON:GitHub上最为开发者认可的JSON解析类Dollar.swift:Swift版Lo-Dash(或underscore)函数式工具库OAu...
  • pj386960300
  • pj386960300
  • 2017年01月04日 07:58
  • 2418

swift网络之json(天气预报)

swift网络编程笔记 学啥语言涉及到网络是基本上都是先来个天气预报,这里也不例外,推荐一个json数据网站,基本够用了http://www.k780.com/api gitHub: https:...
  • I_do_can
  • I_do_can
  • 2016年04月25日 14:33
  • 1009

Swift + AFNetworking获取天气信息

课程地址 http://www.imooc.com/video/2475如何实现xcode8.3, swift3.0+ 环境需要做如下步骤才可以看到信息 ios app访问需要https,修改Info...
  • shrimpcolo
  • shrimpcolo
  • 2017年06月21日 12:19
  • 379

SwiftWeather天气软件

  • 2017年09月15日 11:08
  • 5.51MB
  • 下载

swift网络之json(天气预报)

swift网络编程笔记 学啥语言涉及到网络是基本上都是先来个天气预报,这里也不例外,推荐一个json数据网站,基本够用了http://www.k780.com/api gitHub: https:...
  • I_do_can
  • I_do_can
  • 2016年04月25日 14:33
  • 1009
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS项目开发实战(Swift)—查询天气小应用
举报原因:
原因补充:

(最多只允许输入30个字)