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应用程序理论进入实 ...
随机推荐
- CSS 简单归纳 -- 前端知识
CSS:cascading style sheets层叠样式表,用于美化页面 css的三种表现形式:1.行内样式(内嵌样式):结构的内部,即写在标签内的样式:写在标签的开始部分内部,style属性当中 ...
- @EnableDiscoveryClient与@EnableEurekaClient 区别
Eureka依赖: <dependency> <groupId>org.springframework.cloud</groupId> <arti ...
- ubuntn中root密码设置和权限给予
个人理解: 1.安装ubuntn,会首先要求有一个账号密码设置,比如我设置的:用户名irt,密码**,这是一个普通账户,此时,超级管理账户root密码是空的: 2.给root账户设置密码,大概步骤见下 ...
- cmd--命令短集
查看ip地址:ipconfig 查看ip地址:ipconfig/all 进入c盘program files目录下:cd %Program Files%,”x:“, 进入x盘根目录.cd “ ”进入某文 ...
- Python使用MySQLConnector/Python操作MySQL、MariaDB数据库
使用MySQL Connector/Python操作MySQL.MariaDB数据库 by:授客 QQ:1033553122 因目前MySQLdb并不支持python3.x,而MySQL官方已经提 ...
- Python Word2Vec使用训练好的模型生成词向量
# 文本文件必须是utf-8无bom格式 from gensim.models.deprecated.word2vec import Word2Vec model = Word2Vec.load( ' ...
- Linux 快速查看系统配置-熟悉新环境的配置
问题背景: 当我们使用新的环境的时候,需要很快得熟悉自己环境的配置,这时候我们如果知道一些命令就极为方便了.这样你就能对自己的环境较为熟悉,进行工作的时候也能随心所欲了. 如果你使用workstati ...
- java基础学习总结——异常处理
一.异常的概念 异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误.出现错误时观察错误的名字和行号最为重要.
- Amazon Redshift数据库
Amazon Redshift介绍 Amazon Redshift是一种可轻松扩展的完全托管型PB级数据仓库,它通过使用列存储技术和并行化多个节点的查询来提供快速的查询性能,使您能够更高效的分析现有数 ...
- Linux运维之——每日小技巧,获取网站请求数的前20个IP
获取网站请求书的前20个IP |grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20