Apple Watch应用开发之PM2.5查询
最近脚伤,停止了跑步,看来又要胖了,不过最近倒是对Swift语言很感兴趣,然后就开始了Apple Watch应用的开发,今天是6月8日,苹果的发布会就会在今天过后的凌晨一点开始,今天还是有点小激动的,哈哈。好吧,吹水这么久,现在开始说说关于这款Apple Watch应用的功能,简而言之就是实时查看这几个城市的PM2.5值,我有一个同学比较特殊,他说他去操场跑步的前提是有时间,然后就是当天PM2.5值不超过100,后来我也学他PM2.5值超过100不去跑步,好吧,我必须澄清我可不是为了偷懒,只是权衡利弊才做出的计划。ok,下面就看看这款Apple Watch的运行界面:
在这篇博客里,我简要粘贴一些核心代码,作为参考:
//闭包函数,获取json数据
func getAQI(city:String,completion:(CityAQI?) -> ()){
let baseURL = "http://apistore.baidu.com/microservice/aqi?city="
let session = NSURLSession.sharedSession()
let requestURL = (baseURL + city).stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) let task = session.dataTaskWithURL(NSURL(string:requestURL!)!, completionHandler: { (data, _, error) -> Void in
if error == nil {
if let json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: nil) as? NSDictionary{
//Swift1.2语法在Xcode6.3.1才能使用,低版本Xcode6.2是不能使用Swfit1.2的语法的
if let retData = json["retData"] as? NSDictionary, aqi = retData["aqi"] as? Int, level = retData["level"] as? String{
let cityAQI = CityAQI(city: city, aqi: aqi, level: level)
completion(cityAQI)
}
}
}
})
task.resume()
}
//如果是北京AQI标签可见
if let bj = labelAQIBJ,levelbj = labelLvlBJ{
getAQI("北京", completion: {(ca:CityAQI?) -> () in
if let ca = ca{
bj.setText(ca.aqi.description)
bj.setTextColor(warningInfo(ca.aqi).fgcolor) levelbj.setText(ca.level)
levelbj.setTextColor(warningInfo(ca.aqi).fgcolor) self.gpBJ.setBackgroundColor(warningInfo(ca.aqi).bgcolor)
self.labelSugBJ.setText(warningInfo(ca.aqi).suggestion) }else{
println("没有获取到数据!")
}
})
}
这篇博客我就写到这里,很期待今天晚上苹果发布会,现在我的开发环境是Xcode6.3.1+Swift1.2,而今晚的苹果发布会传言会发布iOS9与Swift2.0语言,真是期待呀~
Apple Watch应用开发之PM2.5查询的更多相关文章
- ArcGIS Engine开发之旅08--和查询相关的对象和接口
原文:ArcGIS Engine开发之旅08--和查询相关的对象和接口 查询在GIS领域应该是一个很频繁的操作,在GIS中除了具有属性查询(和其他关系型数据库的查询类似),还提供了空间查询.在介绍查询 ...
- Mobile开发之meta篇
Mobile开发之meta篇 <meta name="viewport" content="width=device-width, initial-scale=1, ...
- DarkStone - 跨平台移动应用开发之 Flex 的崛起
我的好友Ds 发布一个flex的消息.我帮忙转发 DarkStone - 跨平台移动应用开发之 Flex 的崛起 (2013-08-20 22:28:32) 此文章由 周戈 (DarkSton ...
- 谷歌插件Image downloader开发之popup
Image downloader的交互逻辑是这样的:用户点击Image downloader的图标,会向页面(content script,见上一篇文章:谷歌插件Image downloader开发之 ...
- ArcGIS Engine开发之旅04---ARCGIS接口详细说明
原文:ArcGIS Engine开发之旅04---ARCGIS接口详细说明 ArcGIS接口详细说明... 1 1. IField接口(esriGeoDatabase)... 2 2. ...
- 《苹果开发之Cocoa编程》挑战2 创建一个数据源 练习
<苹果开发之Cocoa编程>第4版 P87 创建一个to-do list应用程序,在文本框中输入任务.当用户单击Add按钮时,添加字符串到一个变长队列,新任务就出现在list的末尾. 关键 ...
- 基于xmpp openfire smack开发之Android客户端开发[3]
在上两篇文章中,我们依次介绍openfire部署以及smack常用API的使用,这一节中我们着力介绍如何基于asmack开发一个Android的客户端,本篇的重点在实践,讲解和原理环节,大家可以参考前 ...
- [置顶] Android开发之MediaPlayerService服务详解(一)
前面一节我们分析了Binder通信相关的两个重要类:ProcessState 和 IPCThreadState.ProcessState负责打开Binder 驱动,每个进程只有一个.而 IPCThre ...
- Android 开发之旅:深入分析布局文件&又是“Hello World!”
http://www.cnblogs.com/skynet/archive/2010/05/20/1740277.html 引言 上篇可以说是一个分水岭,它标志着我们从Android应用程序理论进入实 ...
随机推荐
- 微信公众号本地断点调试(frp反向代理或Remote Debugger)
问题描述: 需要开发微信授权和订阅推送,但是感觉调试不方便,就试着几种方式.因为是用的C#开发,Visual Studio工具自带配套的远程工具 (Remote Debugger).但是感觉不稳定,容 ...
- 【代码笔记】iOS-字符串替换回车和换行
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...
- 【读书笔记】iOS-网络-HTTP-请求内容
一,GET方法. 从服务器获取一段内容,用HTTP术语来说就是实体.GET请求通常不包含请求体,不过也是可以包含的.有些网络缓存设施只会缓存GET响应.GET请求通常不会导致服务器端的数据变化. 二, ...
- JavaScript 数组复制的方法
1.循环 2.Array.from(arr) 3.let arr2 = [...arr]
- js之面向对象
本文的面向对象分为ES6和ES6之前的,重点学习ES6的===============================一.面向对象 1.什么是面向对象 a)什么是对象:万物都可以抽象成对象 时间对象 ...
- Windows7安装nginx后,'nginx -t -c nginx.conf' 命令出现 “could not open error log file: CreateFile() "logs/error.log" failed” 错误的原因
网上搜索安装nginx的方法,按照步骤在 http://nginx.org/en/download.html 下载了安装包,并配置了conf/nginx.conf,将nginx的根目录添加进了环境变量 ...
- 树莓派 温度监控 PWM 控制风扇 shell python c 语言
Mine: 图中圈出来的是三极管 和滤波电容 依赖库: wiringPi sudo apt-get install wiringpi Shell脚本 本文介绍使用Shell脚本在树莓派上启用软件PWM ...
- LeetCode题解之Number of Segments in a String
1.题目描述 2.题目分析 找到字符串中的空格即可 3.代码 int countSegments(string s) { ){ ; } vector<string> v; ; i < ...
- [原创]RedHat 安装MySQL数据库
朋友购买了阿里云的服务器,服务器上自带有CentOS操作系统,但是开发软件需要自己安装,接下来将介绍本地RedHat Linux 5.10虚拟机上搭建Mysql数据库. 一.软件准备 (1)jdk-6 ...
- MSSQL · 最佳实践 · 利用文件组实现冷热数据隔离备份方案
文件组的基本知识点介绍完毕后,根据场景引入中的内容,我们将利用SQL Server文件组技术来实现冷热数据隔离备份的方案设计介绍如下. 设计分析 由于payment数据库过大,超过10TB,单次全量备 ...