基于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亿。 虽然目前腾讯微博也在迅猛的发展并。基于ios的天气预报查询系统的设计与实现毕业设计论文(编辑修改稿)
相关推荐
情况,来选择合适的网络产品,保证高校网络安全、高速运行。 结构合理: 在进行分部设计时,一定要保持一定的层次感,做到思路清晰,以及有一定的层次结构,便于管理整个网络系统。 高效实用 : 科学分析,实现资金的效益最大化,能 基本满足对高校网络 提出的各项要求。 良好的环境: 较高的网络 , 快速访问网络 , 保证学校间的交流。 高校校园网 设计 图 31 高校校园网络拓扑图 IP 地址 规划
的 功能要求: ( 1)能 限制和稳定荧光灯的 正常 工作电流。 ( 2)在交流 电过零时, 能够 比较 正常 的 工作。 ( 3) 为灯的点火提供所需要 的点火电压。 ( 4)在灯点火工作期间 里 , 能 够控制灯点火所需 ,使灯 的 电极 可以 被适当预热,并确保灯丝 的电极保持正常 工作温度。 当然电子镇流 器电路 体积小、工作寿命长和低功耗也是很重要的技术要求。
疗费用全国异地协查机制 ” [1], 因此 通过 提高 的信息化 水 平 , 来 增 强对医保基金 、医疗 服务 行为的监控能力,是一个当前急待解决的问题。 2 系统分析 系统 需求 分析 系统 需求 分析 通过对 医疗服务监控系统 的调查分析,将本系统划分为两个子系统,分别是监控分析子系统和稽核与行政处理子系统。 监控分析子系统需要实现以下目标: ( 1)对监控规则进行灵活配置。 (
厂家安全销售药品的环境,加快各大药品企业对我国 市场的响应速度。 课题意义 和传统销售模式相比,网上药店拥有诸多优势,凭借着这些优势,网上药店得到了顾客消费者的肯定,在逐步改变着人们的消费观念和消费方式。 对于商家来说,网上药店有诸多好处: :和传统的实体药店相比,网上药店突破了时间和空间的阻碍,只要给你一台能上网的电脑你就能买到自己满意的商品,因为网上药店拥有强大的交互功能
业安全可靠的生产,有着巨大的经济效益和深远的社会意义 [2]: 及时掌握设备运行状态异常或故障的早期征兆,采取相应的措施,将故障消灭在萌芽状态,避免或减少重大事故的发生。 一旦发生故障,能自动记录下故障的完整 信息和 数据, 有利于 事后进行故障原因分析,缩短维修时间 ,减少维修 费用,提高设备利用率,避免 同类事故 再次发生。 通过对设备状态异常的原因和性质进行分析,采取适当措施,对设备状态
gate 协议,代理提供了相关的生命周期方法来处理应用程序的系统事件 [9]。 ( 3) UIWindow UIWindow 是一种特殊的 UIView,通常在一个 app 中只会有一个 UIWindow ,但可以手动创建多个 UIWindow[10]。 UIWindow 的主要作用是 提 供 一 个 区 域 来 显 示 视 图 ; 将 事 件 分 发 给 视 图 控 制 器 ;