swift怎么实现在线天气预
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,本篇内容主要讲解"swift怎么实现在线天气预",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"swift怎么实现在线天气预"吧!实现功能简单,但知识点用到很
千家信息网最后更新 2025年11月15日swift怎么实现在线天气预
本篇内容主要讲解"swift怎么实现在线天气预",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"swift怎么实现在线天气预"吧!
实现功能简单,但知识点用到很多,比如微信搜索地理位置等。
// ViewController.swift// WeatherApp// 文启领航培训// bjflexedu.com// qq:376610000import UIKitimport CoreLocationclass ViewController: UIViewController,CLLocationManagerDelegate { @IBOutlet var cityName : UILabel @IBOutlet var icon : UIImageView @IBOutlet var tempTxt : UILabel @IBOutlet var busy : UIActivityIndicatorView @IBOutlet var messageInfo : UILabel let locationManage:CLLocationManager = CLLocationManager() override func viewDidLoad() { super.viewDidLoad() busy.startAnimating() let img = UIImage(named: "background.jpg") self.view.backgroundColor = UIColor(patternImage: img) locationManage.delegate = self locationManage.desiredAccuracy = kCLLocationAccuracyBest locationManage.requestAlwaysAuthorization() locationManage.startUpdatingLocation() } func locationManager(manager: CLLocationManager!, didUpdateLocations locations: AnyObject[]!){ var location = locations[locations.count-1] as CLLocation if location.horizontalAccuracy > 0{ let latitude = location.coordinate.latitude let longitude = location.coordinate.longitude self.updateWeatherData(latitude,longitude:longitude) locationManage.stopUpdatingLocation() } } func updateWeatherData(latitude:CLLocationDegrees,longitude:CLLocationDegrees){ let url = "http://api.openweathermap.org/data/2.5/weather" let params = ["lat":latitude,"lon":longitude,"cnt":0] let manage = AFHTTPRequestOperationManager() let success = { (operation:AFHTTPRequestOperation!, response:AnyObject!) -> Void in //println(response) self.busy.stopAnimating() self.busy.hidden = true self.messageInfo.text = nil //name let jsonResult:NSDictionary = response as NSDictionary self.cityName.text = jsonResult["name"]? as String var tempNum:Double if let tempValue = jsonResult["main"]?["temp"]? as? Double{ tempNum = round(tempValue - 273.15) self.tempTxt.text = "\(tempNum) " } let idCon = (jsonResult["weather"]? as NSArray)[0]?["id"]? as? Int let nowTime = NSDate().timeIntervalSince1970 let sunrise = jsonResult["sys"]?["sunrise"]? as? Double let sunset = jsonResult["sys"]?["sunset"]? as? Double var nightTime = false//true 表示黑夜;false表示白天 if nowTime < sunrise || nowTime > sunset{ nightTime = true }else{ nightTime = false } self.updateIcon(idCon!,nightTime:nightTime) } let failure = { (operation:AFHTTPRequestOperation!, error:NSError!) -> Void in println("\(error)") self.messageInfo.text = "远程数据取不到" } manage.GET(url, parameters: params, success: success, failure: failure) } func updateIcon(condition:Int,nightTime:Bool){ if (condition < 300) { if nightTime { self.icon.p_w_picpath = UIImage(named: "tstorm1_night") } else { self.icon.p_w_picpath = UIImage(named: "tstorm1") } } // Drizzle else if (condition < 500) { self.icon.p_w_picpath = UIImage(named: "light_rain") } // Rain / Freezing rain / Shower rain else if (condition < 600) { self.icon.p_w_picpath = UIImage(named: "shower3") } // Snow else if (condition < 700) { self.icon.p_w_picpath = UIImage(named: "snow4") } // Fog / Mist / Haze / etc. else if (condition < 771) { if nightTime { self.icon.p_w_picpath = UIImage(named: "fog_night") } else { self.icon.p_w_picpath = UIImage(named: "fog") } } // Tornado / Squalls else if (condition < 800) { self.icon.p_w_picpath = UIImage(named: "tstorm3") } // Sky is clear else if (condition == 800) { if (nightTime){ self.icon.p_w_picpath = UIImage(named: "sunny_night") // sunny night? } else { self.icon.p_w_picpath = UIImage(named: "sunny") } } // few / scattered / broken clouds else if (condition < 804) { if (nightTime){ self.icon.p_w_picpath = UIImage(named: "cloudy2_night") } else{ self.icon.p_w_picpath = UIImage(named: "cloudy2") } } // overcast clouds else if (condition == 804) { self.icon.p_w_picpath = UIImage(named: "overcast") } // Extreme else if ((condition >= 900 && condition < 903) || (condition > 904 && condition < 1000)) { self.icon.p_w_picpath = UIImage(named: "tstorm3") } // Cold else if (condition == 903) { self.icon.p_w_picpath = UIImage(named: "snow5") } // Hot else if (condition == 904) { self.icon.p_w_picpath = UIImage(named: "sunny") } // Weather condition is not available else { self.icon.p_w_picpath = UIImage(named: "dunno") } } func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!){ self.messageInfo.text = "地理位置信息找不到" println("地理位置信息找不到\(error)") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }}到此,相信大家对"swift怎么实现在线天气预"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
天气
在线
位置
地理
地理位置
信息
内容
学习
实用
更深
兴趣
功能
实用性
实际
操作简单
数据
方法
更多
朋友
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
英国服务器mfisp
sql 数据库表数据更改
数据库在材料科学中的应用
app软件开发的书籍
网络安全论文中英版
游戏辅助软件开发用语言
江苏外贸进口软件服务器虚拟主机
数据库检索最基本技术
郑州哪个区有软件开发职位
南充寻梦网络技术有限公司
软件开发电脑培训
软件开发成员组成
网络安全专业好的大学
客户端向服务器发起请求
应用软件开发专业怎么样
经开区服务器上门回收价格表
云服务器购买设置
软件开发测试准则
宿城区门若霆网络技术工作室
虹口区信息网络技术服务
歌尔招聘软件开发岗工资
易语言 软件开发 赚钱
游戏辅助软件开发用语言
温州java软件开发系统
远程服务器返回错误的解决方法
服务器怎么让其他电脑用
智能船舶网络安全
北京服务器电源哪个牌子好
软件开发技能培训价格
云服务器购买设置