基于ios的远程视频监控系统的设计与实现(编辑修改稿)内容摘要:

age、AFNetworking、高德地图 SDK,首先使用 search 命令搜索类库,在终端输入 $ pod search AFNetworking(以 AFNetworking 为例) , 终端会返回一个 AFNetworking 的所有版本的列表,然后使用命令 $ cd /Users/shiyunlei/Desktop/CocoapodsSample 进入项目目录, cd后面的是项目的路径,接着使用 $ touch Podfile 创建 Podfile 文件,用 vim 编译器编译Podfile 文件,输入如下命令 $ platform:ios, 39。 39。 , $ pod 39。 AFNetworking39。 , 39。 ~ 39。 并保存退出,最后使用命令 $ pod install来完成 AFNeteorking 的安装 ,成功之后目录下便会新增一个以 .xcworkspace 为后缀的文件,打开即可 同样的方法可以集成其他的第三方类。 iOS 开发证书配置是此项目能在真机上运行的前提之一。 iOS 有着很完善的规范的开发者机制,此项目使用的个人开发者账号,每个账号可以申请两个发布证书,用来在AppStore 上发布自己的作品,和三个开发证书,用来进行真机测试。 每个证书可生成一个对应的描述文件,该描述文件记录了此账号的状态以及所下 挂的证书,进行真机调试前需要将,发布证书或者开发证书和描述文件导入 Xcode 中。 然后再项目 设置 中 的 Build setting code signing 中设置相应的证书以及描述文件,最后在运行设备中选择已经加入开发者的 iOS 设备,运行后便可进行调试。 网络数据包获取 paros 环境搭建 此项目的所有接口为抓取其他同类 App 的网络数据包而来,因此需要在本机配置网络数据包劫持环境,该项目使用的工具为 paros,首先该环境必须在安装有 JDK 的环境下使用,且手机与电脑必须在同一局域网络下,从官网下载 JDK 最新版,并配置环境变量即为 JDK 的安装路径,然后打开 paros 软件,在 Tools options Local proxy 下根据自己的 ip 地址来配置 local host 的 ip 地址,端口号为大于 8080 的任意数,然后进入手机设置 无线局域网 设置已连接的网络,将代理改为手动,其中的 ip 地址和端口号要与 paros 所设置的完全一致, 此时在 iphone 上运行程序的同时便可以在 paros 中获得相应的网络数据包。 可在 Xcode 中使用 NSJSONSerialization 或者 NSXMLParser 类对其进 行进一步的解析。 程序运行和会在下方的 console 有输出显示程序状态。 Objectivec 中的关键类 NSJSONSerialization NSJSONSerialization, ios5 中 apple 增加了解析 JSON 的 apiNSJSONSerialization。 大连 东软信息学院毕业设计(论文) 8 NSJSONSerialization 在效率上远远超越了 SBJSON、 TouchJSON、 YAJL、 JSONKit、NextiveJson。 因为作为苹果自带的 JSON 数据解析类,它更好的兼容了 iOS 的内存管理机制, JNSJSONSerialization 提供了将 JSON 数据转换为 Foundation 对象 一般都是NSDictionary 和 NSArray 和 Foundation 对象转换为 JSON 数据, 可以通过调用isValidJSONObject 来判断 Foundation 对象是否可以转换为 JSON 数据。 该类 提供非常便捷的数据类型转换方法,尤其在涉及到网络数据与本地数据相互转化方面和跨平台语言编程方面有着很高的效率, 利用 NSJSONSerialization可 将 JSON 转换成 Foundation对象,也能将 Foundation 对 象转换成 JSON,转换成 JSON 的对象必须具有如下属性: 对象必须是 NSArray 或者 NSDictionary; NSString、 NSNumber、NSArray、 NSDictionary、 NSNull 的实例 ; NSDictionary 的 key 必须是 NSString类型 ;。 NSDictionary 中的 key 就是 json 字符串中的 key,object 就是 json 字符串中的 value, isValidJSONObject:方法是检测 Foundation 对象能否合法转换为 JSON 对象, dataWithJSONObject: options: error 方法是将 Foundation 对象转换为 JSON 对象,参数 NSJSONWritingPrettyPrinted 的意思是将生成的 json 数据格式化输出,这样可读性高,不设置则输出的 json 字符串就是一整行。 AFNetworking 该项目会从网络上请求数据,所有的数据都从网络接口中来,因此用到了大量的网络请求, AFNetworking 是一个轻量型的第三方网络库, 适用于 iOS 以及 Mac OS X. 它构建 于在 NSURLConnection, NSOperation, 以及其他熟悉的 Foundation 技术之上 . 它拥有良好的架构 ,丰富的 api,以及模块化构建方式 ,使得使用起来非常轻松。 他可以非常便捷和迅速的 从一个 url 来得到 json 数据 ,并以 NSMutableDictionary 的形式返回,采用 Block语法进行回掉。 为了更好的处理向 Web 站点的请求,包括处理 Session, Cookie 等细节问题,使用 AFNetworking 则是更好的选择,他可以用于发送 HTTP 请求,接收 HTTP的响应,但是不会缓存服务器 的响应,不能执行 HTML 页面中的 JAvascript 代码 ,同时,AFNetworking 还内置支持 JSON, plist 文件和 XML 文件的解析,使用比较方便。 使用之前需要实例化一个 AFHTTPRequestOpeartionManger 对象 , 根据服务器内容的不同,为 AFHTTPRequestOpeartionManger 对象指定不同的解析格式,该对象默认的解析格式是 JSON 和 Plist 文件解析器。 发送 GET 请求 用 : Manager 对象调用 GET: parameters:success: failure:方法即可, success 代码块和 failue 代码块在网络请求成功 /失败过后调用。 大连 东软信息学院毕业设计(论文) 9 SDWebImage SDWebImage 是 iOS 平台上非常优秀的异步加载图片的第三方类库, 这个类库提供一个 UIImageView 类别以支持加载来自网络的远程图片 同时支持 GIF 动画 , 通过对UIImageView 的类别扩展来实现异步加载替换图片的工作 ,同时该类还 具有缓存管理、异步下载、同一个 URL 下载次数控制和优化等特征。 它支持 64 位,因为使用苹果自带的 GCD 多线程机制,所以可以保证在加载大量图片的情况下主线程永远不会被堵塞,同时具有很完善的缓存管理功能,使同样的地址不会被请,也不会造成内存泄漏等问题,其中大部分使用 category 类目来完,如 UIImage+、 UIButton+WebCache 、UIImage+MultiFormat 等,在使用的时候首先需要引入头文件 import“ ”,然后使用 (void)setImageWithURL:(NSURL *)url placeholderImage:(UIImage *)placeholder 或 (void)setImageWithURL:(NSURL *)url forState:(UIControlState)state placeholderImage:(UIImage *)placeholder 方法来完成异步加载图片的操作,同时可以使用该类自带的占位图获得更好的体验效果。 大致的使用步骤如下: ( 1)加载图片准备 入口 setImageWithURL:placeholderImage:options: 会先把 placeholderImage 显 示,然后 SDWebImageManager 根据 URL 开始处理图片。 ( 2)检查本地缓存 进入 SDWebImageManagerdownloadWithURL:delegate:options:userInfo:, 查找本地图片是否存在 queryDiskCacheForKey:delegate:userInfo。 ( 3)展示图片 如果内存中已经有图片缓存, 则 回调 imageCache:didFindImage:forKey:userInfo: 到 SDWebImageManager。 如 果 没 有 缓 存 则 SDWebImageManagerDelegate 回调 webImageManager:didFinishWithImage: 到 UIImageView+WebCache 等前端展示图片。 ( 4)将图片缓存 将图片保存到 SDImageCache 中,内存缓存和硬盘缓存同时保存。 写文件到硬盘 也在以单独 NSInvocationOperation 完成,避免拖慢主线程。 大连 东软信息学院毕业设计(论文) 10 第 3 章 系统分析 构架概述 功能构架 经过需求分析,结合自己的所掌握的编程技巧,确定 ―NoBorder‖的功能为 推荐景点 、搜索目的地 、 特价优惠、地图定位,更多菜单 ,其中更多菜单又分为今日新闻、附近美食、我要登陆、说点什 么, 功能层次图如图 所示。 图 系统功能层次图 模块需求描述 该应用是一款和旅行类有关的 APP, 本 软件界面 友好,功能完善, 用户可以通过此APP 了解到当今现代的旅游行情,其中包含的新闻功能可使用户不出家门便可尽知天下事,同时当用户出门在外的时候,还可以帮助用户定位当前的地理位置,显示当前的坐标,同时以自身坐标为圆心搜索附近的美食,包括美食的做法,同时还有评论功能,用户可以在论坛上自己发言,发表对景点以及其他事件的一些看法。 让游客 互动,是出门在外的必备应用。 本应用做了本地存储,并没有 使用通常的 splite 数据库 ,而是使用了 iOS 所特有的沙盒机制 sandbox 作为本地持久化的方法 ,因为沙盒机制会比数据的效率更高,他可以直接将 App 信息存储到 sandbox 的根目录下 , 而且移动端的开发对 iOS ipa 包的大小有大连 东软信息学院毕业设计(论文) 11 着严格地限制, 并且此 App 并没有太多复杂的数据,且不需要对数据进行过多的操作,只需要将数据存入本地,在没有接入互联网的时候会显示本地数据。 因此使用 sandbox来代替数据库 splite 以达到更好的目的。 更多菜单里面包含了附近美食、当日新闻、评论列表、登陆模块,其中附近美食考虑到不同的 旅游景点不仅仅有不同的景色,同时也有当地的美味食物, 特色小吃,而这些也是旅行中不可缺少的,通过附近美食,用户可以对当地美食文化的一个深入了解,同时也可以学会美食的详细做法。 当天新闻可以让用户在旅行的途中或者是家中浏览当天所发生的事情。 评论列表可以让用户发表自己对 App 的或者是对景点的一下见解,让用户与用户间更好的交流。 登录模块分为第三方登录和匿名登陆。 用户登录后可进行发言。 第三方包括微信、 、人人、豆瓣等第三方登陆平台。 如上图 所示, ―NoBorder‖从 推荐景点 、 登录 、 评论、地图定位四 大模块进行分析,这些模 块根据不同的设计从而实现不同功能,下面分别阐述每个模块具体功能。 ( 1) 推荐景点 推荐景点 模块功能结构图如图 所示。 图 推荐景点 功能结构图 推荐景点页面共有以上六种功能,强力推荐景点为每隔一段时间 App 会自动为用户推荐四到五个热门景点,以 UIScrollView 滚动条的方式展现出来,用户点击进入可查看景点详情;最新热门游记模块为一些旅行达人把自己的行程感受,分享出来,包括目的地景色、目的地路线、 门票价格等信息,供其他旅客浏览,同时下方的评论列表也可看到其他人的看法和意见;每日精选 图片主要提供者了一些美丽景色的图片和其出处供大大连 东软信息学院毕业设计(论文) 12 家参考,用户可以根据图片来判断自己是否喜欢最终决定是否前往,节省了时间的同时也帮用户更好的制定旅行计划; 旅行达人推荐模块会把定期评选出来的旅行达人展示出来,包括达人所旅行过的景点,今日旅行专题模块每天会给用户推荐一个城市,用户可以看到这个城市中所有的著名景点以及风土人情,同时还可显示推荐游览顺序避免绕路;本周线下活动模块显示了官方所组织的一些活动,用户可根据自己的喜好选择相应的活动,查看活动详情及报名方式等。 ( 2) 登录 模块 登录 模块 集成了多种登录方式,包括新浪 、腾讯等国内一些主流的社交平台账号登陆,登陆之前会先判断用户是否已经登录,如果已经登录这直接显示登录用户的信息,其功能结构 如图 所示。 图 登录。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。