iPhone企业应用实例分析之四:技术要点分析(1)

1.异步网络通信
在WebDoc Mobile项目中,系统的异步网络通信功能在AsyncNet类中实现,系统使用AsyncNet类来封装对NSURLConnection的操作,在iOS开发中通常使用NSOperation来处理多任务的并发问题,因为NSURLConnection本身已经支持异步操作,所以没有必要再使用NSOperation来对每个请求进行包装,而是使用一个NSMutableArray来存取请求队列,并使用一个NSMutableDictionary来将请求对象和响应数据进行关联,NSURLConnection对象作为Key,请求对象作为值,增加关联的代码:
NSMutableDictionary *requests;
AsyncNetRequest *request = [[AsyncNetRequest alloc] init];
[requests setObject:request forKey:
  [NSValue valueWithNonretainedObject:con]];
[request release];

2.Core Data缓存数据
在进行iPhone软件开发时,使用Core Data进行数据缓存或者管理持久数据是一项必须掌握的基本技术。前面我们已经做过介绍,和前面使用Core Data管理“动物园”项目持久数据不同的是,程序在这里没有使用表之间的关联关系,而只是定义文档、文档附件、文档历史以及统计图4种对象对应的数据库模型,用来缓存服务器返回的数据,并不作为关系数据和持久数据使用,在每次程序启动时都会清空数据库,重新使用服务器返回的最新数据,Core Data只起到数据缓存的作用,当数据从服务器返回以后,在第二次使用时程序从缓存取数据而不是从服务器取数据,这样可以提高反应速度,文档对象对应的数据库模型包含的字段定义如下。
//  Document.h
#import <CoreData/CoreData.h>

@interface Document: NSManagedObject{ 
}


3.RSA算法加解密
在WebDoc Mobile项目中,iPhone客户端和服务器端(使用Microsoft .NET技术)采用Web Service进行相互通信,通信双方需要将数据进行加密处理,以保证网络通信的安全性,未经认证的客户端Web Service调用将不能在服务器端执行,系统采用业界目前广泛采用的PKI(公钥基础设施)技术进行用户认证管理,使用RSA算法进行加解密,有关RSA算法加解密的具体内容在本书前面的章节已经做了介绍,实现的细节请参考本书附带的光盘中的DocMobile工程,这里就不再详述。
4.自定义控件制作
在WebDoc Mobile项目中,由于用户界面的需要,系统制作了一些自定义的界面控件,其中包括与桌面软件类似的ComboBox界面控件,如图5-12所示。
 

该控件用于用户登录和高级搜索时,提供下拉多项目选择,程序使用UITextField类、UIPickerView类和UIToolbar类三个主要类实现,具体的实现方法在前面的章节已经做了具体介绍。
自定义搜索控件,控件外观如图5-13所示。
 

该控件提供在许多数据记录中进行选择过滤的功能,当用户输入一个字符或者单词,程序实时从数据记录中找出开头字符或者记录中包含该字符或者单词的记录,把记录进行实时过滤。这样,用户就不用在很长的列表里面查找,而是从过滤后的少量记录里面挑选,该控件在需要用户从非常多的选项中做选择的时候,可以作为界面设计元素。控件使用SearchViewController类实现,SearchViewController类内部使用UITableView和UISearchBar联合实现记录过滤功能,当用户输入字符时,程序使用NSString类的rangeOfString方法对记录进行过滤,并使用过滤后的记录刷新UITableView的内容,代码如下。
- (void) searchTableView {
 
 NSString *searchText = search.text;
   
 for (NSString *sTemp in tempArray)
 {
  NSRange titleResultsRange = [sTemp rangeOfString:searchText options: NSCaseInsensitiveSearch];
  
  if (titleResultsRange.length > 0)
   [searchArray addObject:sTemp];
 }
 
}
本节控件实现和使用相关的完整源代码文件请参考本书附带的光盘中的DocMobile工程。

本文节选自《iOS软件开发揭密:iPhone&iPad企业应用和游戏开发》一书。
《iOS软件开发揭密:iPhone&iPad企业应用和游戏开发》一书已由电子工业出版社正式出版,本书由虞斌著。

购买地址

当当网:
http://product.dangdang.com/product.aspx?product_id=21082051

卓越网:
http://www.amazon.cn/iOS%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E6%8F%AD%E5%AF%86-iPhone-iPad%E4%BC%81%E4%B8%9A%E5%BA%94%E7%94%A8%E5%92%8C%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91-%E8%99%9E%E6%96%8C/dp/B0051HAIA4/ref=sr_1_1?s=books&ie=UTF8&qid=1306139777&sr=1-1

互动出版网:http://product.china-pub.com/198191

iPhone企业应用实例分析之四:技术要点分析(1)相关推荐

  1. python 局域网广播_Python实现局域网内屏幕广播的技术要点分析

    原标题:Python实现局域网内屏幕广播的技术要点分析 为更好地保证教学质量和提高学生的学习积极性,我使用Python开发了一套课堂教学管理系统,具有在线点名.在线答疑.随机提问.在线作业管理.在线自 ...

  2. 联机分析处理系统与联机事务处理系统的区别和联系_混合事务分析处理“HTAP”的技术要点分析...

    HTAP是近些年来比较火的一个概念,本文将聊聊HTAP的前世今生及技术特点. 一.数据应用类别 根据数据的使用特征,可简单做如下划分.在选择技术平台之前,我们需要做好这样的定位. 1.1 OLTP 联 ...

  3. Python实现局域网内屏幕广播的技术要点分析

    为更好地保证教学质量和提高学生的学习积极性,我使用Python开发了一套课堂教学管理系统,具有在线点名.在线答疑.随机提问.在线作业管理.在线自测.在线考试.数据汇总.试卷生成.屏幕广播等功能,教师端 ...

  4. 大数据处理与分析方向主要干什么_不了解干法制砂?6个影响干法制砂效果的主要因素及干法制砂生产加工7大技术要点分析...

    选择合理的设备配置和布设,采用合适的干法制砂工艺流程,全面地考虑各种因素,才能够确保制砂生产系统的稳定.高效.因为干法制砂工艺存在着差异性,所以在应用该工艺技术生产机制砂时会出现质量.产量等结果指标的 ...

  5. 直播协议HLS技术要点分析:分段生成与m2u8文件

    1.概述: HTTP Live Streaming(HLS)是苹果公司(Apple Inc.)实现的基于HTTP的流媒体传输协议,可实现流媒体的直播和点播,主要应用在iOS系统,为iOS设备(如iPh ...

  6. 苏州软件类企业在高新技术企业认定中的要点分析

    国家重点支持的高新技术八大领域:电子信息技术.生物与新医药技术,航空航天技术.新材料技术,高技术服务业.新能源及节能技术,资源与环境技术.高新技术改造传统产业. 持续进行研究开发与技术成果转化,形成企 ...

  7. 智能情绪分析技术_石化缘推荐:炼化企业智能机器人巡检技术应用前景分析!...

    本期内容由湖南天一奥星泵业有限公司冠名 炼化企业智能机器人巡检技术应用前景分析 王国彤1,孙秉才2,储胜利2,宋亚敏1(1.中国石油天然气股份有限公司大连石化分公司,辽宁省大连市:2.中国石油集团安全 ...

  8. 可视化拖拽组件库一些技术要点原理分析(三)

    本文是可视化拖拽系列的第三篇,之前的两篇文章一共对 17 个功能点的技术原理进行了分析: 编辑器 自定义组件 拖拽 删除组件.调整图层层级 放大缩小 撤消.重做 组件属性设置 吸附 预览.保存代码 绑 ...

  9. 可视化拖拽组件库一些技术要点原理分析(二)

    本文是对<可视化拖拽组件库一些技术要点原理分析>[1]的补充.上一篇文章主要讲解了以下几个功能点: 1.编辑器2.自定义组件3.拖拽4.删除组件.调整图层层级5.放大缩小6.撤消.重做7. ...

  10. 论计算机应用技术对企业信息化的影响,企业信息化中计算机应用技术影响分析...

    论文写作指导:请加QQ97050021 现代企业信息化的发展离不开计算机应用技术,本文分别简述了企业信息化与计算机应用技术的发展现状,并对计算机应用技术对企业信息化发展的影响与优势进行了分析.下面是小 ...

最新文章

  1. android 多线程下载,断点续传,线程池
  2. 菜鸟学习计划浅谈之Linux系统
  3. 运维中心建设--数据管理
  4. 武汉众邦银行的数字化升级秘诀:让每个业务⼈员都能自助式分析查询
  5. python3精要(40)-数组与矩阵
  6. python开发一个自己的技术网站_手把手教你写网站:Python WEB开发技术实战
  7. Java 学习笔记(9)——java常用类
  8. 清华大学开源用于网络嵌入的工具包 OpenNE
  9. 研发管理 - 流程篇
  10. 关于gopher协议的ssrf攻击
  11. 计算机音乐创作心得,理结与悠的作曲入门讲座(心得篇 3-4)
  12. post 防篡改_表单提交数据防篡改
  13. Docker容器学习笔记(看了狂神视频)
  14. Datawhale学习笔记【阿里云天池 金融风控-贷款违约预测】Task2 数据分析
  15. asp毕业设计——基于asp+access的新闻发布系统设计与实现(毕业论文+程序源码)——新闻发布系统
  16. linux下rdesktop用法
  17. 第八届中国云计算大会胜利启幕云计算产业进入应用迅速普及期
  18. 知乎问题:北京,2017,多少k的java web程序员应该懂多线程和jvm优化?
  19. python判断用户输入的数是正数还是负数
  20. 基于朴素贝叶斯分类器的西瓜数据集 2.0 预测分类_朴素贝叶斯为什么被称为“朴素”?...

热门文章

  1. 深度学习模型的可视化技术总结
  2. python全栈开发-Day3 字符串
  3. 删除数据所有的表和存储过程
  4. JQuery simpleModal插件的使用-遁地龙卷风
  5. bzoj3620 似乎在梦中见过的样子
  6. js基础之动画(一)
  7. Intel处理器系列
  8. 两本关于sharepoint 2010的书值得参考
  9. DirectX Audio和DirectShow入门
  10. fork( )函数(转载)