基于ios的天气预报查询系统的设计与实现毕业设计论文(编辑修改稿)内容摘要:

想要查看的城市后点击并进入天气查询,包括即时的天气情况和未来 5天内的天气情况,内容带有文字和图片并显示在列表上,并将详细信息显示在单独的 view里的 lable 上; (4) 天气趋势:将未来 5天内的最高气温和最低气温分两条不同颜色的折线显示在画板上,使用户更直观的了解到未来 5 天内的天气变化; (5) 实景拍摄:点击 Button 键后可以调用手机自带的相机并进行拍照,并将拍摄后的照片保存到本地相册里; (6) 分享:从本地选取喜欢的照片并在 textfield 上进行文字编辑,编辑好后将文字和图片分享到国内最流行的新浪微博平台上,与亲朋好友分享自己的照片和心情。 技术架构 Foundation 框架简介 为所有程序开发奠定基础的框架称为 Foundation 框架。 它允许使用一些基本对象,如数字和字符串,以及一些对象集合,如数组、字典和集合。 其他功能包括处理日期和事件、自动化的内存管理、处理基础文件系统、存储(或归档)对象、处理几何数据结构(如点和长方形) [3]。 Foundation 框架是用 ObjectC对 Core Foundation 框架里许多特性的封装。 使用 Foundation 可以 : (1) 创建和管理集合,比如数组和字典。 (2) 访问存储在应用程序里的图片和其它资源。 (3) 创建和管理字符串。 (4) 提交和接收通知。 (5) 创建日期和时间对象。 (6) 自动发现 IP 网络上的设备。 毕业设计(论文)纸 第 9 页 共 37 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊装 ┊┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊订┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊线┊ ┊ ┊ ┊ ┊ ┊ ┊ (7) 操作 URL 流。 (8) 执行异步 代码。 UIKit 框架简介 UIKit 框架是 iPhone 应用程序开发中最基本的框架 ,也是用得最多、最重要的框架 [4]。 所有的 iOS 应用程序都基于 UIKit, 绝对 不能 使 应用程序脱离这个框架。 UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。 UIKit 也通过管理显示在屏幕上的组件来组织复杂的项目。 使用 UIKit 可以: (1) 构建和管理用户界面。 (2) 捕获触摸和基于移动的事件。 (3) 呈现文字和 web 内容。 (4) 优化多任务程序。 (5) 创建定制的用户界面元素。 ASIHTTPRequest 类库简介 使用 iOS SDK 中的 HTTP 网络请求 API,相当的复杂,调用很繁琐。 ASIHTTPRequest就是一个对 CFNetwork API 进行了封装,并且使用起来非常简单的一套 API, 它 用ObjectiveC编写,可以很好的应用在 Mac OS X 系统和 iOS 平台的应用程序中。 ASIHTTPRequest 适用于 如下 基本的 HTTP 请求 : [5] (1) 支持通过代理发起 Http 请求。 (2) 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作。 (3) 支持基本、摘要和 NTLM 身份认证,在同一会话中授权凭证会自 动维持,并且可以存储在 Keychain( Mac 和 iOS 操作系统的密码管理系统)中。 (4) ASIWebPageRequest – 可以下载完整的网页,包括包含的网页、样式表、脚本等资源文件,并显示在 UIWebView /WebView 中。 任意大小的页面都可以无限期缓存,这样即使没有网络也可以离线浏览 (5) 支持带宽限制。 在 iOS 平台,可以根据当前网络情况来自动决定是否限制带宽,例如当使用 WWAN(GPRS/Edge/3G)网络时限制,而当使用 WIFI 时不做任何限制。 (6) 支持断点续传。 (7) 支持同步和异步请求 JSONkit 类库简介 JSONKit 是 Objective C 平台上比较常用的 JSON 数据访问工具。 JSONKit 功能很强大,主要特色如下: (1) JSONKit 能在运行的情况下与 自动连接而无须人工连接。 毕业设计(论文)纸 第 10 页 共 37 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊装 ┊┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊订┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊线┊ ┊ ┊ ┊ ┊ ┊ ┊ (2) 在解析期间,如果检测到有 gzip 文件, JSONKit 能自动解压。 (3) 速度超快,支持之前的 iOS 版本(但要注意一点,从 iOS 5 开始, iOS 就已经有本地 JSON 解析工具了)。 (4) JSONKit 的性能远优于 JSONFramework(即 SBJSON), JSONKit 使用起来也非常简单,表现性能比苹果 iOS 中的 NSJSONSerialization 还要好,速度比NSJSONSerialization 快上 25%到 40%,已经是非常大的一个差距了。 MVC 设计模式简介 MVC设计模式是在 20世纪 80年代发明的一种软件 设计模式, 至今已被广泛使用。 MVC 本身并不是最基本的设计模式,它包含了若干更加基本的设计模式。 在 MVC 中基本设计模式相互配合,确定了各功能之间的协 作,这是 MVC 应用程序的特性 [6]。 其中MVC 是 ModelViewControl 的简称,即模型 视图 控制器。 (1) 模型( Model) : “ 数据模型 ” ( Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。 “ 模型 ” 有对数据直接访问的权力,例如对数据库的访问。 “ 模型 ” 不依赖 “ 视图 ” 和 “ 控制器 ” ,也就是说,模型不关心它会被如何显示或是如何被操作。 但是模型中数据的变化一般会通过一种刷新机制被公布。 为了实现这种机制,那些用于监视此模型的视图必须事先在此模型上注册,从而,视图可以了解在数据模型上发 生的改变。 (2) 视图( View) : 视图层能够实现数据有目的的显示(理论上,这不是必需的)。 在视图中一般没有程序上的逻辑。 为了实现视图上的刷新功能,视图需要访问它监视的数据模型( Model),因此应该事先在被它监视的数据那里注册。 (3) 控制器( Controller) : 控制器起到不同层面间的组织作用,用于控制应用程序的流程。 它处理事件并作出响应。 “ 事件 ” 包括用户的行为和数据模型上的改变。 开发平台 iOS 开发基本背景简介 iOS 介绍: iOS是由苹果公司为 iPhone 等 移动 设备开发的 操作系统。 它主要是 给iPhone、 iPad 和 iPod touch 使用。 就像其基于的 Mac OS X 操作系统一样,它也是以 Darwin 为基础的。 iPhone OS 的系统架构分为四个层次:核心操作系统层( the Core OS layer),核心服务层( the Core Services layer),媒体层( the Media layer),可轻触层( the Cocoa Touch layer)。 应用程序由 ObjectiveC开发。 (1) 开发工具介绍: ① Xcode:开发 iOS 应用,需要在 Mac OS X 运行 Xcode 开发工具。 Xcode是 Apple 的开发工具套件,支持项目管理、编辑代码、构建可执行程序、代码 毕业设计(论文)纸 第 11 页 共 37 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊装 ┊┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊订┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊线┊ ┊ ┊ ┊ ┊ ┊ ┊ 级调试、代码的版本管理、性能调优等等。 这个套件的核心是 Xcode 应用本身,它提供了基本的源代码开发环境。 ② Interface Builder:利用 Interface Builder,可以通过 拖拽组件在程序窗口上进行装配。 布置好 界面 时 ,将内容保存在 nib 文件中。 无论为哪种平台编程,都需要在 Interface Builder 中花费大量的时间 [7]。 ③ 模拟器: iPhone 模拟器可以在 Mac 中调试 iOS 应用程序,它的外观和真实的 iPhone/iPad 设备一模一样。 使用它调试程序,比在真实设备中更方便快捷 [8]。 模拟器不支持 GPS定位、摄像头、指南针等与硬件关联较大的功能。 (2) 开发语言介绍: ObjectiveC是一门面向对象的编程语言,是开发 iPhone和 iPad 应用的编程语言,也是开发基于 Mac 操作系统的应用程序的编程语言 [9]。 ObjectiveC从标准的 ANSI C 语言扩展而来,并提供了定义类、方法和属性的语法,还有其它结构来促进类 的动态扩展。 iOS 开发平台搭建 (1) iOS 开发环境 : Xcode 是 Apple 自己开发的,只运行在 Mac OS X 平台下的IDE。 使用 Xcode 来设计程序的逻辑,使用 Interface Builder。 来设计程序的界面。 运行 Xcode 或以上的版本需要 Mac OS 及以上的系统版本。 (2) iOS 软件开发者证书介绍:苹果的开发工具是免费的,但是开发出来的程序需要在真机上运行或者发布到 AppStore 上(越狱的除外),需要购买苹果的授权。 开发者证书工具就是 Mac开发者计划成员申请和下载 Mac 应 用程序签名证书的工具。 购买费用是 99美元。 它涉及到苹果同意的条款和条件,并要签署和返回合同。 只有注册后才能在 iPhone 上测试你的程序,而不是在屏幕上的模拟器。 (3) 运行程序 : 当你做好准备调试你的 application,你首先是通过 Xcode 的 Build 来构建你的系统,如果 Build 没有错误的话,你有两种方式可以运行你的Application: iPhone Simulator 和 Device iPhone。 毕业设计(论文)纸 第 12 页 共 37 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊装 ┊┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊订┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊线┊ ┊ ┊ ┊ ┊ ┊ ┊ 3 系统总体设计 系统模块划分 根据初期的设计思想和需求分析的结果,根据本平台要达到的功能 要求,本系统大致可以抽象为 菜单模块、天气查询模块和分享模块。 菜单模块 菜单模块需要实现的是一个 类似 经典的 转盘电话中拨号转盘的旋转菜单效果。 滑动菜单,菜单进行转动,转动的过程中,处于最前面的按钮按钮慢慢变大,处于后端的按钮变小。 同样,点击转盘菜单上某个按钮,被点击的按钮会慢慢被转到最前面。 由于转动的过程中,按钮会 由 大变小或者由小变大,所以这个动画有 3D的效果。 菜单模块效果图如图 31所示。 图 31 菜单模块效果图 毕业设计(论文)纸 第 13 页 共 37 页 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊装 ┊┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊订┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊线┊ ┊ ┊ ┊ ┊ ┊ ┊ 天气查询模块 天气查询模块是本系统的重点,该模块需要实现地理位 置查询、天气查询以及折线图。 此模块主要负责用 Post 方法向服务器发送请求并将获取到的 Xml数据进行解析,将解析到的数据加载到创建好的列表上。 折线图则是利用 iOS 中比较复杂的画板显示,通过获取到的未来 5天内的气温变化以折线形式显示在画板上,可以方便用户更直观的了解到未来的天气变化。 此模块采用 POST 方法获取数据而不是采用 GET 方法是因为 GET 一般用于获取 /查询 资源信息,而 POST 一般用于更新资源信息。 再进一步了解下他们两个的区别: (1) GET 使用 URL 或 Cookie 传参。 而 POST 将数据放在 BODY 中。 (2) GET 的 URL会有长度上的限制,则 POST 的数据则可以非常大。 (3) POST 比 GET 安全,因为数据在地址栏上不可见。 分享模块 分享模块是本系统的一个吸引用户的亮点,因为该模块选用了新浪微博平台。 众所周知随着互联网的迅猛发展,微博客已经形成信息传播的主流,在国外最流行的微博客 Twitter,而在国内新浪微博率先进入了市场,并取得了非常大的成功,而在用户量上也早已经突破 3亿。 虽然目前腾讯微博也在迅猛的发展并。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。