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应用程序理论进入实 ...
随机推荐
- BZOJ5305: [HAOI2018]苹果树
传送门 果然只有我这种菜鸡才会用这种菜鸡做法QwQ 对于一类要求期望的题目,有一个无脑的做法: 设概率为 \(f\),期望为 \(g\) 每次合并两个二元组 \(<f_1,g_1>,< ...
- IntelliJ idea 备份与恢复
为了防止突然断电或者电脑突然关机导致idea恢复出厂设置,需要定期备份配置. 一.备份 File---Export Settings 将settings.jar 文件导入到C:\Users\xutin ...
- 解决跨域问题之anywhere
anywhere搭建服务,ionic PC端和手机端可以通过网址来查看网页效果.解决跨域问题 大家都知道编写完HTML代码后,可以直接在pc端的浏览器查看,但现在手机端越来越广泛了,想跟在pc端查看网 ...
- Android应用程序启动过程(一)总结
一.App启动方式 1,冷启动 冷启动:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用. 冷启动的特点:因为系统会重新创建一个新的进程分配给它,所以会创建和初始化App ...
- 看jQuery的这几天
现在在做SPA时,有很多非常好用而且流行的前端框架,比如Vue,React,Angular等,jQuery似乎要逐渐退出前端的舞台了.不得不说,'write less,do more' 这句话吸引了我 ...
- php编译安装 报错 make ***[libphp5.la] Error 1解决方法
报错信息: /usr/bin/ld: cannot find -lltdl collect2: ld returned 1 exit status make: *** [libphp5.la] Err ...
- Oracle EBS FA 资产编号跳号
- 服务器重启可能会导致SQL Server中部分数据库变为single user mode
今天检查公司生产服务器的SQL Server数据库,惊讶的发现有三个生产数据库变为了single user mode.奇怪的是没有任何人和程序执行过SQL语句将这三个数据库设置为single user ...
- SQL 时间戳转换为日期
, '1970-01-01 00:00:00') 其中Timestamp为10位的时间戳,+8*3600是获取中国北京时间(东八区)
- [Linux|DBA]运维三十六计
这里是腾讯两位大神梁定安.周小军总记得运维DBA三十六计--