iOS 6编程实战

来源:互联网 发布:软件开发框架设计 编辑:程序博客网 时间:2024/06/18 11:21
《iOS 6编程实战》
基本信息
原书名:iOS 6 Programming Pushing the Limits
作者: (美)Rob Napier    Mugunth Kumar    [作译者介绍]
译者: 陈晓亮 武海峰 邓强 周庆成
丛书名: 图灵程序设计丛书
出版社:人民邮电出版社
ISBN:9787115312181
上架时间:2013-3-21
出版日期:2013 年4月
开本:16开
页码:1
版次:1-1
所属分类:计算机 > 软件与程序设计 > 移动开发 > 其他移动开发技术

更多关于 》》》《iOS 6编程实战》
内容简介
计算机书籍
  ios 平台不断发展变化,本书基于此进行了全面更新,分4 部分深入介绍ios 6 开发。第一部分主要介绍ios 6 新功能。第二部分带你熟练掌握常用工具(含表视图通知和动画图层),内容涉及cocoa 设计模式与苹果利用其解决问题的思路、通过objective-c 的arc 管理内存、正确使用表视图(含解决无限滚动等问题)、集合视图与自动布局、自定义绘图、视图动画与core animation 框架、错误处理、位置服务。第三部分介绍特定情况下要使用的工具与相关技术,涉及表视图、多任务、rest 式服务、安全(用钥匙串、证书和密码保护应用与用户数据)、基于硬件和平台调整应用、轻松打造国际化与本地化、应用内购买、用instruments 进行性能调优。第四部分介绍了更高级的开发工具,涵盖故事板与自定义切换效果、kvo、块与函数式编程、离线支持、云、文本布局、core foundation,并最后深度解析了objective-c。
   《ios 6编程实战》适合具有一定ios 开发经验,致力于深入了解ios 开发、最佳实践以及他人实际开发经验的人学习参考。
目录
《ios 6编程实战》 
第一部分  全新功能 
第1章  全新的系统  2 
1.1  新功能  2 
1.1.1  集合视图  3 
1.1.2  自动布局  3 
1.1.3  自动引用计数  3 
1.1.4  应用内购买的托管内容  4 
1.1.5  社交框架  4 
1.1.6  ui状态保留  4 
1.1.7  其他新功能  4 
1.2  小结  6 
1.3  扩展阅读  6 
第2章  熟悉xcode 4和llvm编译器  7 
2.1  了解用户界面  8 
2.1.1  标签式编辑器  9 
2.1.2  按键绑定的变化  9 
2.1.3  工程设置编辑器  10 
2.1.4  内置的版本控制系统  10 
2.1.5  工作区  10 
.2.2  单窗口工作方式  10 
2.3  导航面板  11 
2.3.1  工程导航面板  12 
2.3.2  符号导航面板  12 
2.3.3  搜索导航面板  12 
2.3.4  问题导航面板  12 
2.3.5  调试导航面板  12 
2.3.6  断点导航面板  12 
2.3.7  日志导航面板  13 
2.4  辅助功能  13 
2.5  内置的interface builder  13 
2.6  xcode之核心:llvm编译器  14 
2.6.1  clang编译器前端  15 
2.6.2  我是一个bug!修复我  15 
2.7  llvm  4的新功能  15 
2.7.1  字面量  15 
2.7.2  字面量和可用性检查  18 
2.7.3  实例变量的自动合成  18 
2.8  使用git进行版本控制  19 
2.8.1  内置的git版本控制系统  19 
2.8.2  版本编辑器  19 
2.8.3  git最佳实践  19 
2.9  scheme  20 
2.9.1  为什么使用scheme  20 
2.9.2  建议用scheme实现你的意图  21 
2.9.3  创建一个scheme  21 
2.9.4  共享你的scheme  22 
2.10  为编译配置添加注释  22 
2.10.1  创建xcconfig文件  22 
2.10.2  重构编译配置文件  23 
2.11  将代码转换为支持arc的objective-c代码  23 
2.12  xcode 4 organizer  25 
2.12.1  automatic device provisioning  25 
2.12.2  查看崩溃日志和控制台输出  25 
2.12.3  查看应用沙盒数据  26 
2.12.4  管理版本库  26 
2.12.5  管理应用程序归档  26 
2.12.6  查看objective-c和sdk文档  26 
2.13  小结  26 
2.14  扩展阅读  26 
2.14.1  苹果文档  26 
2.14.2  wwdc讲座  27 
2.14.3  博客  27 
2.14.4  网上资源  27 
2.14.5  图书  27 
第二部分  熟能生巧 
第3章  objective-c基础知识  30 
3.1  命名约定  30 
3.2  自动引用计数  32 
3.3  属性  35 
3.3.1  属性修饰关键字  36 
3.3.2  属性最佳实践  37 
3.3.3  私有实例变量  37 
3.4  存取器  37 
3.5  分类和扩展  38 
3.5.1  +load方法  40 
3.5.2  使用关联引用为分类添加数据  40 
3.5.3  类扩展  42 
3.6  正式协议和非正式协议  42 
3.7  小结  43 
3.8  扩展阅读  44 
3.8.1  苹果文档  44 
3.8.2  其他资源  44 
第4章  cocoa设计模式  45 
4.1  理解模型?视图?控制器  45 
4.1.1  使用模型类  46 
4.1.2  使用视图类  46 
4.1.3  使用控制器类  47 
4.2  理解委托和数据源  47 
4.3  使用命令模式  48 
4.3.1  使用目标?动作  48 
4.3.2  使用方法签名和调用  49 
4.3.3  使用蹦床  52 
4.3.4  撤销  55 
4.4  使用观察者模式  55 
4.5  使用单例模式  58 
4.6  小结  60 
4.7  扩展阅读  60 
4.7.1  苹果文档  60 
4.7.2  其他资源  61 
第5章  通过objective-c的arc管理内存  62 
5.1  objective-c的arc基础入门  62 
5.1.1  历史简介  62 
5.1.2  手动引用计数与自动引用计数  63 
5.2  什么是arc  63 
5.2.1  在arc工程中集成非arc的第三方代码  64 
5.2.2  在非arc工程中集成arc代码  64 
5.2.3  框架中的arc代码  64 
5.2.4  arc空声明变量  67 
5.2.5  objective-c命名约定  67 
5.2.6  覆盖默认行为  67 
5.2.7  自由桥接  68 
5.2.8  arc内部原理  68 
5.3  常见的arc移植错误  69 
5.4  小结  72 
5.5  扩展阅读  72 
5.5.1  苹果文档  72 
5.5.2  wwdc讲座  72 
5.5.3  博客  73 
第6章  熟练使用表视图  74 
6.1  uitableview类的继承关系  74 
6.2  熟悉表视图  75 
6.2.1  uitableviewcontroller  75 
6.2.2  uitableviewcell  75 
6.2.3  提高表视图的滚动速度  75 
6.2.4  自定义非重复表单元  82 
6.2.5  表视图最佳方案:编写简洁代码,简化控制器内容  83 
6.3  小结  87 
6.4  扩展阅读  87 
6.4.1  苹果文档  87 
6.4.2  其他资源  87 
第7章  集合视图与自动布局  88 
7.1  集合视图  88 
7.1.1  类与协议  88 
7.1.2  示例  89 
7.2  自动布局  97 
7.2.1  使用自动布局  98 
7.2.2  了解自动布局  98 
7.2.3  相对布局约束  98 
7.2.4  视觉化格式语言  101 
7.2.5  调试布局错误  102 
7.3  小结  103 
7.4  扩展阅读  104 
7.14.1  苹果文档  104 
7.14.2  wwdc讲座  104 
第8章  绘图功能  105 
8.1  ios的不同绘图系统  105 
8.2  uikit和视图绘图周期  106 
8.3  视图绘制与视图布局  108 
8.4  自定义视图绘制  108 
8.4.1  通过uikit绘图  109 
8.4.2  路径  109 
8.4.3  理解坐标系  111 
8.4.4  重新调整大小以及内容模式  114 
8.4.5  变形  115 
8.4.6  通过core graphics进行绘制  117 
8.4.7  混用uikit与core graphics  120 
8.4.8  管理图形上下文  121 
8.5  优化uiview绘制  123 
8.5.1  避免绘图  123 
8.5.2  缓存与后台绘制  123 
8.5.3  自定义绘图与预渲染  123 
8.5.4  像素对齐与模糊文本  124 
8.5.5  透明、不透明与隐藏  125 
8.6  cglayer  125 
8.7  小结  127 
8.8  扩展阅读  127 
8.8.1  苹果文档  127 
8.8.2  其他资源  128 
第9章  core animation   129 
9.1  视图动画  129 
9.2  管理用户交互  131 
9.3  图层绘制  132 
9.3.1  直接设置内容  134 
9.3.2  实现display方法  134 
9.3.3  自定义绘图  135 
9.3.4  在自己的上下文中绘图  136 
9.4  移动对象  136 
9.4.1  隐式动画  137 
9.4.2  显式动画  137 
9.4.3  模型与表示  138 
9.4.4  关于定时  140 
9.5  三维动画  142 
9.6  美化图层  145 
9.7  用动作实现自动动画  146 
9.8  为自定义属性添加动画  147 
9.9  core animation与线程  148 
9.10  小结  149 
9.11  扩展阅读  149 
9.11.1  苹果文档  149 
9.11.2  其他资源  149 
第10章  错误处理  150 
10.1  错误处理模式  150 
10.2  断言  151 
10.3  异常  153 
10.4  捕获与报告程序崩溃  153 
10.5  错误和nserror  154 
10.6  错误处理块  156 
10.7  日志  157 
10.7.1  记录敏感信息  158 
10.7.2  获取日志文件  159 
10.8  小结  159 
10.9  扩展阅读  159 
10.9.1  苹果文档  159 
10.9.2  其他资源  159 
第11章  位置服务  161 
11.1  core location框架  161 
11.1.1  获取用户位置  162 
11.1.2  使用内置的罗盘获取用户前进方向  162 
11.1.3  位置服务和用户隐私  163 
11.2  后台位置服务  165 
11.2.1  后台获取位置更新  165 
11.2.2  显著位置变更通知  165 
11.2.3  区域监控(地理围栏)  167 
11.3  位置模拟  167 
11.4  时刻关注电量消耗  168 
11.5  小结  168 
11.6  扩展阅读  168 
第三部分  选择工具 
第12章  表视图常用ui范例  170 
12.1  下拉刷新  170 
12.2  无限滚动  173 
12.3  行内编辑与键盘  175 
12.4  uitableview的动画效果  177 
12.5  表视图动画的实际应用  178 
12.5.1  实现折叠列表  178 
12.5.2  实现选项抽屉  180 
12.5.3  在表视图单元格中使用手势识别器  181 
12.6  小结  181 
12.7  扩展阅读  182 
第13章  多任务  183 
13.1  后台运行最佳实践:能力越大责任越大  183 
13.2  状态恢复系统  185 
13.2.1  测试状态恢复系统  186 
13.2.2  选择性加入  186 
13.2.3  应用启动过程的变化  187 
13.2.4  状态恢复标识符  187 
13.2.5  状态编码器与状态解码器  188 
13.2.6  表视图和集合视图  191 
13.2.7  状态恢复系统的高级应用  192 
13.3  多任务和运行循环简介  192 
13.4  以操作为中心的多任务开发  193 
13.5  用gcd实现多任务  197 
13.5.1  gcd和arc  198 
13.5.2  源和定时器  198 
13.5.3  用分派屏障创建同步点  199 
13.5.4  队列目标和优先级  200 
13.5.5  分派组  201 
13.5.6  队列关联数据  202 
13.5.7  分派数据  202 
13.6  小结  203 
13.7  扩展阅读  203 
13.7.1  苹果文档  203 
13.7.2  wwdc讲座  203 
13.7.3  其他资源  203 
第14章  rest解惑  204 
14.1  rest简介  205 
14.2  选择数据交换格式  205 
14.2.1  在ios中解析xml  205 
14.2.2  在ios中解析json  206 
14.2.3  xml与json  207 
14.2.4  模型版本化  208 
14.3  假想的web服务  208 
14.4  重要提醒  209 
14.5  restfulengine架构(ihotelapp示例代码)  209 
14.5.1  nsurlconnection与第三方框架  209 
14.5.2  创建restfulengine  210 
14.5.3  使用访问令牌对api调用进行认证  213 
14.5.4  在restfulengine.m中覆盖相关方法以添加自定义认证头部  213 
14.5.5  取消请求  214 
14.5.6  请求响应  214 
14.5.7  对json数据进行键值编码  215 
14.5.8  列表页面的json对象与详细页面的json对象  217 
14.5.9  嵌套json对象  217 
14.5.10  少即是多  219 
14.5.11  错误处理  219 
14.5.12  本地化  221 
14.5.13  使用分类处理其他格式  221 
14.5.14  在ios中提升性能的小技巧  222 
14.6  小结  222 
14.7  扩展阅读  222 
14.7.1  苹果文档  222 
14.7.2  其他资源  223 
第15章  通过安全服务巩固系统安全  224 
15.1  理解ios沙盒  224 
15.2  保证网络通信的安全  225 
15.2.1  证书工作原理  226 
15.2.2  检验证书的有效性  228 
15.2.3  判断证书的可信度  231 
15.3  使用文件保护  233 
15.4  使用钥匙串  234 
15.5  使用加密  236 
15.5.1  aes概要  237 
15.5.2  使用pbkdf2将密码转换成密钥  237 
15.5.3  aes模式和填充  239 
15.5.4  初始化向量  240 
15.5.5  使用hmac进行认证  241 
15.5.6  错误的密码  241 
15.5.7  进行单槽加密  242 
15.5.8  提高commoncrypto的性能  244 
15.5.9  组合使用加密和压缩  247 
15.6  小结  247 
15.7  扩展阅读  248 
15.7.1  苹果文档  248 
15.7.2  wwdc讲座  248 
15.7.3  其他资源  248 
第16章  在多个苹果平台和苹果设备上运行应用  249 
16.1  开发多平台应用  249 
16.1.1  可配置的目标设置:base sdk和deployment target  250 
16.1.2  支持多个sdk时的注意事项:框架、类和方法  250 
16.1.3  检查框架、类和方法的可用性  252 
16.2  检测设备的功能  253 
16.2.1  检测设备及判断功能  253 
16.2.2  检测硬件和传感器  254 
16.3  应用内发送email和短信  258 
16.4  检查多任务支持  258 
16.5  支持iphone 5  259 
16.6  uirequireddevicecapabilities  260 
16.7  小结  261 
16.8  扩展阅读  262 
16.8.1  苹果文档  262 
16.8.2  其他资源  262 
第17章  国际化和本地化  263 
17.1  什么是本地化  263 
17.2  本地化字符串  264 
17.3  对未本地化的字符串进行审查  265 
17.4  格式化数字和日期  266 
17.5  nib文件和base internationalization  269 
17.6  本地化复杂字符串  270 
17.7  小结  272 
17.8  扩展阅读  272 
17.8.1  苹果文档  272 
17.8.2  wwdc讲座  272 
第18章  通过应用内购买提高销售业绩  273 
18.1  开始之前  273 
18.2  应用内购买什么  273 
18.2.1  禁止通过应用内购买出售的产品  274 
18.2.2  重新思考你的商业模式  275 
18.3  在itunes connect上设置产品配置  275 
18.3.1  第一步:为你的应用创建一个新的app id  276 
18.3.2  第二步:生成配置文件  277 
18.3.3  第三步:创建应用的产品项  277 
18.3.4  第四步:创建应用内购买产品项  278 
18.3.5  第五步:生成共享密钥  279 
18.3.6  第六步:创建测试账户  279 
18.3.7  第七步:创建托管内容  279 
18.4  实现应用内购买  281 
18.5  mkstorekit简介  281 
18.5.1  为什么要用mkstorekit  281 
18.5.2  mkstorekit的设计  282 
18.5.3  定制mkstorekit  283 
18.6  实现购买  285 
18.7  下载托管内容  285 
18.8  测试代码  286 
18.9  排错  286 
18.9.1  无效的产品id  286 
18.9.2  无法连接itunes store  286 
18.9.3  你已经购买了该产品,但它尚未下载  287 
18.10  小结  287 
18.11  扩展阅读  287 
18.11.1  苹果文档  287 
18.11.2  博客  287 
18.11.3  其他资源  287 
第19章  调试  288 
19.1  lldb  288 
19.2  使用lldb进行调试  288 
19.2.1  dsym文件  289 
19.2.2  符号化  290 
19.3  断点  291 
19.4  观察点  294 
19.5  lldb控制台  295 
19.6  nszombieenabled标志  298 
19.7  不同的崩溃类型  299 
19.7.1  exc_bad_access  299 
19.7.2  sigsegv  300 
19.7.3  sigbus  300 
19.7.4  sigtrap  300 
19.7.5  exc_arithmetic  300 
19.7.6  sigill  300 
19.7.7  sigabrt  301 
19.7.8  看门狗超时  301 
19.7.9  自定义错误信号处理程序  301 
19.8  收集崩溃报告  302 
19.9  第三方崩溃报告服务  303 
19.10  小结  303 
19.11  扩展阅读  304 
19.11.1  苹果文档  304 
19.11.2  wwdc讲座  304 
19.11.3  其他资源  304 
第20章  性能调优  305 
20.1  性能思维模式  305 
20.1.1  指导方针一:产品是为了取悦用户才存在的  305 
20.1.2  指导方针二:设备是为了方便用户而存在的  305 
20.1.3  指导方针三:做到极致  305 
20.1.4  指导方针四:用户的感知才是实际的  306 
20.1.5  指导方针五:关注能带来大收益的方面  306 
20.2  欢迎走入instruments的世界  306 
20.3  查找内存问题  308 
20.4  查找cpu问题  311 
20.4.1  accelerate框架  314 
20.4.2  glkit  315 
20.5  绘图性能  315 
20.6  优化磁盘访问和网络访问  317 
20.7  小结  318 
20.8  扩展阅读  318 
20.8.1  苹果文档  318 
20.8.2  其他资源  318 
第四部分  超越极限 
第21章  故事板及自定义切换效果  320 
21.1  初识故事板  320 
21.1.1  实例化故事板  321 
21.1.2  加载故事板中的视图控制器  321 
21.1.3  联线  321 
21.1.4  使用故事板来实现表视图  323 
21.2  自定义切换效果  324 
21.2.1  还有一个优点  325 
21.2.2  白璧微瑕  326 
21.3  使用uiappearance协议自定义视图  326 
21.4  小结  327 
21.5  扩展阅读  327 
21.5.1  苹果文档  327 
21.5.2  wwdc讲座  327 
21.5.3  其他资源  327 
第22章  cocoa的大招:键值编码和观察  328 
22.1  键值编码  328 
22.1.1  用kvc赋值  330 
22.1.2  用键路径遍历属性  331 
22.1.3  kvc和容器类  331 
22.1.4  kvc和字典  335 
22.1.5  kvc和非对象  336 
22.1.6  用kvc实现高阶消息传递  336 
22.1.7  容器操作符  336 
22.2  键值观察  337 
22.2.1  kvo和容器类  339 
22.2.2  kvo是如何实现的  340 
22.3  kvo的权衡  340 
22.4  小结  342 
22.5  扩展阅读  342 
22.5.1  苹果文档  342 
22.5.2  其他资源  342 
第23章  不同凡想:块和函数式编程  343 
23.1  什么是块  343 
23.1.1  为什么要用函数式编程  343 
23.1.2 “函数式”uialertview  344 
23.2  声明块  345 
23.2.1  变量作用域  346 
23.2.2  栈与堆  346 
23.3  实现块  347 
23.4  块和并发  349 
23.4.1  gcd中的分派队列  349 
23.4.2  nsoperationqueue与gcd分派队列  350 
23.5  基于块的cocoa方法  351 
23.5.1  uiview的动画使用块  351 
23.5.2  展示和移除视图控制器  352 
23.5.3  tweetcomposer 与应用程序中发送邮件(短信)  352 
23.5.4  用nsdictionary的enum erationwithblock遍历字典  352 
23.5.5  寻找基于块的方法  353 
23.6  支持情况  353 
23.7  小结  353 
23.8  扩展阅读  354 
23.8.1  苹果文档  354 
23.8.2  博客  354 
23.8.3  其他资源  354 
第24章  离线支持  355 
24.1  需要离线支持的原因  355 
24.2  缓存策略  356 
24.2.1  存储缓存  356 
24.2.2  缓存版本和失效  359 
24.3  数据模型缓存  359 
24.4  缓存版本控制  363 
24.5  创建内存缓存  364 
24.5.1  为appcache设计内存缓存  365 
24.5.2  处理内存警告  366 
24.5.3  处理结束和进入后台通知  367 
24.6  创建url缓存  367 
24.6.1  过期模型  368 
24.6.2  验证模型  368 
24.6.3  示例  368 
24.6.4  用url缓存来缓存图片  369 
24.7  小结  369 
24.8  扩展阅读  369 
24.8.1  苹果文档  369 
24.8.2  书籍  369 
24.8.3  其他资源  369 
第25章  云端数据  370 
25.1  icloud  370 
25.2  第三方云服务提供商  372 
25.3  parse  373 
25.3.1  parse入门  373 
25.3.2  parse的顶层对象  374 
25.3.3  代码  374 
25.4  stackmob  376 
25.4.1  设置stackmob  376 
25.4.2  登录、上传和获取数据  377 
25.4.3  stackmob自定义代码  377 
25.5  后端即服务的缺点  378 
25.6  小结  378 
25.7  扩展阅读  378 
25.7.1  苹果文档  378 
25.7.2  wwdc讲座  378 
25.7.3  其他资源  379 
第26章  精妙的文本布局  380 
26.1  基本控件:字段、视图和标签  380 
26.2  uikit中的富文本  381 
26.2.1  理解粗体、斜体和下划线  381 
26.2.2  属性化字符串  382 
26.2.3  段落样式  384 
26.2.4  属性化字符串和html  384 
26.3  用web视图显示富文本  385 
26.3.1  在web视图中显示和访问html  385 
26.3.2  响应用户交互  386 
26.3.3  在滚动视图和表格视图中绘制web视图  386 
26.4  core text  387 
26.4.1  用ctframesetter进行简单的布局  387 
26.4.2  为非连续路径创建框架  388 
26.4.3  排版器、文本行、连续文本和字形  390 
26.4.4  沿着曲线绘制文本  391 
26.5  小结  395 
26.6  扩展阅读  395 
26.6.1  苹果文档  395 
26.6.2  wwdc讲座  395 
26.6.3  其他资源  396 
第27章  创建core foundation应用  397 
27.1  core foundation类型  397 
27.2  命名和内存管理  398 
27.3  分配器  399 
27.4  内省  400 
27.5  字符串和数据  400 
27.5.1  常量字符串  401 
27.5.2  创建字符串  401 
27.5.3  转换为c字符串  402 
27.5.4  其他字符串操作符  404 
27.5.5  字符串的支持存储  404 
27.5.6  cfdata  405 
27.6  容器类型  405 
27.6.1  cfarray  406 
27.6.2  cfdictionary  406 
27.6.3  cfset和cfbag  406 
27.6.4  其他容器类型  407 
27.6.5  回调函数  407 
27.7  自由桥接  408 
27.8  小结  411 
27.9  扩展阅读  411 
27.9.1  苹果文档  411 
27.9.2  其他资源  411 
第28章  深度解析objective-c   412 
28.1  理解类和对象  412 
28.2  使用方法和属性  414 
28.3  消息传递如何工作  416 
28.3.1  动态实现  417 
28.3.2  快速转发  419 
28.3.3  普通转发  422 
28.3.4  转发失败  422 
28.3.5  各种版本的objc_msgsend  423 
28.4  方法混写  423 
28.5  isa混写  426 
28.6  方法混写与isa混写  427 
28.7  小结  427 
28.8  扩展阅读  427 
28.8.1  苹果文档  427 
28.8.2  其他资源  428 
索引  429 

本图书信息来源:中国互动出版网
原创粉丝点击