iOS编程实战

iOS编程实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , ,
2014-09
版次: 1
ISBN: 9787115368034
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 389页
字数: 603千字
正文语种: 简体中文
原版书名: iOS 7 Programming Pushing the Limits
40人买过
  •   《iOS编程实战》是受开发者喜爱的iOS进阶图书。它包含大量代码示例,主线是围绕如何设计、编写和维护的iOS应用。开发者可从《iOS编程实战》学到大量关于设计模式、编写可重用代码以及语法与新框架的知识。
      相对上一版,新版进行了大幅修订,新增6章阐述iOS7新特性,并对大部分内容进行了更新,涵盖了iOS7大部分新增特性,包括新的后台操作(第11章)、CoreBluetooth(第13章)、UIKit动力学(第19章)以及TextKit(第21章)。我们提供了如何处理新的扁平化UI的指南(第2章),还新增了一章开发者不太常见但相当实用的“小技巧”(第3章)。
      《iOS编程实战》适合iOS移动开发人员。   RobNapier 2005年开始从事Mac开发,iPhoneSDK发布时就开始开发iPhone应用。他是TheDaily、PandoraBoy和CiscoMobile的作者,StackOverflow的主要贡献者,并维护技术博客Cocoaphony(cocoaphony.com),主要关注组网、性能、安全和MVC模式。

      MugunthKumar 独立iOS开发者,新加坡南洋理工大学硕士研究生,主修信息系统。其个人博客(blog.mugunthkumar.com)主要发表移动开发、软件可用性、用户体验和iOS相关的文章。从事iOS开发前,他在财富500强企业通用电气和霍尼韦尔担任Windows和.NET平台软件顾问。他关注的领域包括编程方法论(面向对象和函数式编程)、移动开发以及可用性设计。 第一部分 全新功能

    第1章 全新的系统 2
    1.1 新的UI 2
    1.2 UIKit Dynamics和Motion Effects 3
    1.3 自定义过渡效果 4
    1.4 新的多任务模式 4
    1.5 Text Kit 5
    1.6 动态字体 5
    1.7 MapKit集成 5
    1.8 SpriteKit 5
    1.9 LLVM 5 5
    1.10 Xcode 5 7
    1.10.1 nib文件格式的变化 7
    1.10.2 源代码控制集成 7
    1.10.3 自动配置 7
    1.10.4 对调试导航面板的改进 8
    1.10.5 文档浏览器 8
    1.10.6 Asset Catalog 9
    1.10.7 测试导航面板 9
    1.10.8 持续集成 10
    1.10.9 Auto Layout改进 10
    1.10.10 iOS模拟器 10
    1.11 其他 10
    1.12 小结 11
    1.13 扩展阅读 11

    第2章 世界是平的:新的UI范式 12
    2.1 清晰、依从和层次 12
    2.2 动画、动画、动画 12
    2.2.1 UIKit Dynamics 13
    2.2.2 UIMotionEffect 13
    2.3 着色 14
    2.4 用半透明实现层次和上下文 14
    2.5 动态字体 15
    2.6 自定义过渡效果 16
    2.7 把应用过渡(迁移)到iOS 7 17
    2.7.1 UIKit变化 17
    2.7.2 自定义设计 17
    2.7.3 支持iOS 6 17
    2.8 小结 20
    2.9 扩展阅读 20

    第二部分 充分利用日常工具

    第3章 你可能不知道的 22
    3.1 命名最佳实践 22
    3.1.1 自动变量 22
    3.1.2 方法 22
    3.2 属性和实例变量最佳实践 23
    3.3 分类 24
    3.4 关联引用 26
    3.5 弱引用容器 27
    3.6 NSCache 28
    3.7 NSURLComponents 28
    3.8 CFStringTransform 29
    3.9 instancetype 30
    3.10 Base64和百分号编码 31
    3.11 -[NSArray firstObject] 31
    3.12 小结 31
    3.13 扩展阅读 32

    第4章 故事板及自定义切换效果 33
    4.1 初识故事板 33
    4.1.1 实例化故事板 34
    4.1.2 加载故事板中的视图控制器 34
    4.1.3 联线 34
    4.1.4 使用故事板来实现表视图 36
    4.2 自定义切换效果 37
    4.2.1 优点 39
    4.2.2 白璧微瑕——合并冲突 39
    4.3 小结 39
    4.4 扩展阅读 39

    第5章 掌握集合视图 41
    5.1 集合视图 41
    5.1.1 类与协议 41
    5.1.2 示例 42
    5.2 用集合视图自定义布局实现高级定制 49
    5.2.1 石工布局 50
    5.2.2 封面浏览布局 55
    5.3 小结 56
    5.4 扩展阅读 56

    第6章 使用自动布局 58
    6.1 Xcode 4的自动布局 58
    6.2 了解自动布局 59
    6.3 Xcode 5中自动布局的新特性 59
    6.3.1 在Xcode 5中使用自动布局 61
    6.3.2 固有尺寸 62
    6.3.3 固有尺寸和本地化 63
    6.3.4 设计时和运行时布局 63
    6.3.5 自动更新边框 64
    6.3.6 顶部和底部布局引导 65
    6.3.7 辅助编辑器中的布局预览 65
    6.3.8 在设计时调试自动布局 65
    6.3.9 在自动布局中使用滚动视图 66
    6.3.10 使用自动布局和边框 66
    6.3.11 可视格式化语言 66
    6.3.12 可视格式化语言的缺点 67
    6.3.13 调试布局错误 68
    6.4 小结 69
    6.5 扩展阅读 69

    第7章 更完善的自定义绘图 71
    7.1 iOS的不同绘图系统 71
    7.2 UIKit和视图绘图周期 72
    7.3 视图绘制与视图布局 73
    7.4 自定义视图绘制 74
    7.4.1 通过UIKit绘图 74
    7.4.2 路径 75
    7.4.3 理解坐标系 77
    7.4.4 重新调整大小以及内容模式 79
    7.4.5 变形 80
    7.4.6 通过Core Graphics进行绘制 82
    7.4.7 混用UIKit与Core Graphics 85
    7.4.8 管理图形上下文 85
    7.5 优化UIView绘制 87
    7.5.1 避免绘图 87
    7.5.2 缓存与后台绘制 88
    7.5.3 自定义绘图与预渲染 88
    7.5.4 像素对齐与模糊文本 89
    7.5.5 透明、不透明与隐藏 90
    7.6 小结 90
    7.7 扩展阅读 91

    第8章 Core Animation 92
    8.1 视图动画 92
    8.2 管理用户交互 94
    8.3 图层绘制 94
    8.3.1 直接设置内容 96
    8.3.2 实现display方法 97
    8.3.3 自定义绘图 97
    8.3.4 在自己的上下文中绘图 99
    8.4 移动对象 99
    8.4.1 隐式动画 100
    8.4.2 显式动画 101
    8.4.3 模型与表示 101
    8.4.4 关于定时 103
    8.5 三维动画 105
    8.6 美化图层 108
    8.7 用动作实现自动动画 108
    8.8 为自定义属性添加动画 110
    8.9 Core Animation与线程 111
    8.10 小结 111
    8.11 扩展阅读 111

    第9章 多任务 113
    9.1 多任务和运行循环简介 113
    9.2 以操作为中心的多任务开发 114
    9.3 用GCD实现多任务 118
    9.3.1 分派队列简介 119
    9.3.2 用分派屏障创建同步点 120
    9.3.3 分派组 121
    9.4 小结 121
    9.5 扩展阅读 121

    第三部分 选择工具

    第10章 创建(Core)Foundation框架 124
    10.1 Core Foundation类型 124
    10.2 命名和内存管理 125
    10.3 分配器 126
    10.4 内省 126
    10.5 字符串和数据 127
    10.5.1 常量字符串 127
    10.5.2 创建字符串 128
    10.5.3 转换为C字符串 129
    10.5.4 其他字符串操作符 131
    10.5.5 字符串的支持存储 131
    10.5.6 CFData 132
    10.6 容器类型 132
    10.6.1 CFArray 133
    10.6.2 CFDictionary 133
    10.6.3 CFSet和CFBag 134
    10.6.4 其他容器类型 134
    10.6.5 回调函数 134
    10.7 自由桥接 136
    10.8 小结 139
    10.9 扩展阅读 139

    第11章 幕后制作:后台处理 140
    11.1 后台运行最佳实践:能力越大责任越大 140
    11.2 iOS 7中后台运行的重要变化 142
    11.3 用NSURLSession访问网络 142
    11.3.1 会话配置 143
    11.3.2 任务 143
    11.3.3 后台传输 144
    11.4 周期性拉取和自适应多任务 146
    11.5 后台唤醒 146
    11.6 状态恢复系统 147
    11.6.1 测试状态恢复系统 147
    11.6.2 选择性加入 148
    11.6.3 应用启动过程的变化 149
    11.6.4 状态恢复标识符 149
    11.6.5 状态编码器与状态解码器 149
    11.6.6 表视图和集合视图 153
    11.7 小结 154
    11.8 扩展阅读 154

    第12章 使用REST服务 156
    12.1 REST简介 157
    12.2 选择数据交换格式 157
    12.2.1 在iOS中解析XML 157
    12.2.2 在iOS中解析JSON 158
    12.2.3 XML与JSON 159
    12.2.4 模型版本化 160
    12.3 假想的Web服务 160
    12.4 重要提醒 161
    12.5 RESTfulEngine架构(iHotelApp示例代码) 161
    12.5.1 NSURLConnection与第三方框架 161
    12.5.2 创建RESTfulEngine 162
    12.5.3 使用访问令牌对API调用进行认证 165
    12.5.4 在RESTfulEngine.m中覆盖相关方法以添加自定义认证头部 165
    12.5.5 取消请求 166
    12.5.6 请求响应 166
    12.5.7 对JSON数据进行键值编码 167
    12.5.8 列表页面的JSON对象与详细页面的JSON对象 169
    12.5.9 嵌套JSON对象 169
    12.5.10 少即是多 171
    12.5.11 错误处理 171
    12.5.12 本地化 173
    12.5.13 使用分类处理其他格式 173
    12.5.14 在iOS中提升性能的小技巧 174
    12.6 缓存 174
    12.7 需要离线支持的原因 174
    12.8 缓存策略 175
    12.8.1 存储缓存 175
    12.8.2 缓存版本和失效 178
    12.9 数据模型缓存 178
    12.10 缓存版本控制 182
    12.11 创建内存缓存 183
    12.11.1 为AppCache设计内存缓存 184
    12.11.2 处理内存警告 185
    12.11.3 处理结束和进入后台通知 186
    12.12 创建URL缓存 186
    12.12.1 过期模型 187
    12.12.2 验证模型 187
    12.12.3 示例 187
    12.12.4 用URL缓存来缓存图片 188
    12.13 小结 188
    12.14 扩展阅读 188

    第13章 充分利用蓝牙设备 190
    13.1 蓝牙历史 190
    13.2 为什么选择低功耗蓝牙 191
    13.3 蓝牙SDK 191
    13.3.1 服务器 191
    13.3.2 客户端 191
    13.4 类和协议 191
    13.5 使用蓝牙设备 192
    13.5.1 通过扫描寻找服务 192
    13.5.2 连接设备 194
    13.5.3 直接获取外围设备 194
    13.5.4 发现服务 194
    13.5.5 发现特性 195
    13.6 创建自己的外围设备 197
    13.6.1 广播服务 197
    13.6.2 常见场景 200
    13.7 在后台运行 200
    13.7.1 后台模式 200
    13.7.2 电量考虑 200
    13.7.3 状态保存和恢复 200
    13.8 小结 201
    13.9 扩展阅读 201

    第14章 通过安全服务巩固系统安全 203
    14.1 理解iOS沙盒 203
    14.2 保证网络通信的安全 204
    14.2.1 证书工作原理 205
    14.2.2 检验证书的有效性 207
    14.2.3 判断证书的可信度 210
    14.3 使用文件保护 211
    14.4 使用钥匙串 213
    14.5 使用加密 216
    14.5.1 AES概要 217
    14.5.2 使用PBKDF2将密码转换成密钥 217
    14.5.3 AES模式和填充 219
    14.5.4 初始化向量 220
    14.5.5 使用HMAC进行认证 221
    14.5.6 错误的密码 222
    14.5.7 组合使用加密和压缩 222
    14.6 小结 222
    14.7 扩展阅读 222

    第15章 在多个苹果平台和设备及64位体系结构上运行应用 224
    15.1 开发多平台应用 225
    15.1.1 可配置的目标设置:Base SDK和Deployment Target 225
    15.1.2 支持多个SDK时的注意事项:框架、类和方法 225
    15.1.3 检查框架、类和方法的可用性 227
    15.2 检测设备的功能 228
    15.2.1 检测设备及判断功能 228
    15.2.2 检测硬件和传感器 229
    15.3 应用内发送Email和短信 233
    15.4 支持新的4英寸设备族系 233
    15.4.1 Cocoa自动布局 235
    15.4.2 代码中固化屏幕尺寸 235
    15.4.3 iPhone 5s和新的64位指令集 235
    15.5 向iOS 7迁移 236
    15.5.1 自动布局 236
    15.5.2 支持iOS 6 236
    15.5.3 应用图标 237
    15.5.4 边界按钮 237
    15.5.5 着色 237
    15.5.6 图片更新 237
    15.6 向64位体系结构迁移 238
    15.6.1 数据溢出 238
    15.6.2 序列化数据 239
    15.6.3 针对64位体系结构的条件编译 239
    15.7 UIRequiredDeviceCapabilities 239
    15.8 小结 240
    15.9 扩展阅读 240

    第16章 国际化和本地化 242
    16.1 什么是本地化 242
    16.2 本地化字符串 243
    16.3 对未本地化的字符串进行审查 244
    16.4 格式化数字和日期 245
    16.5 nib文件和Base Internationalization 248
    16.6 本地化复杂字符串 248
    16.7 小结 250
    16.8 扩展阅读 251

    第17章 调试 252
    17.1 LLDB 252
    17.2 使用LLDB进行调试 252
    17.2.1 dSYM文件 253
    17.2.2 符号化 254
    17.3 断点 255
    17.4 观察点 258
    17.5 LLDB控制台 259
    17.6 NSZombieEnabled标志 262
    17.7 不同的崩溃类型 263
    17.7.1 EXC_BAD_ACCESS 263
    17.7.2 SIGSEGV 263
    17.7.3 SIGBUS 264
    17.7.4 SIGTRAP 264
    17.7.5 EXC_ARITHMETIC 264
    17.7.6 SIGILL 264
    17.7.7 SIGABRT 264
    17.7.8 看门狗超时 265
    17.7.9 自定义错误信号处理程序 265
    17.8 断言 265
    17.9 异常 267
    17.10 收集崩溃报告 268
    17.11 第三方崩溃报告服务 269
    17.12 小结 270
    17.13 扩展阅读 270

    第18章 性能调优 272
    18.1 性能思维模式 272
    18.1.1 指导方针一:产品是为了取悦用户才存在的 272
    18.1.2 指导方针二:设备是为了方便用户而存在的 272
    18.1.3 指导方针三:做到极致 272
    18.1.4 指导方针四:用户的感知才是实际的 273
    18.1.5 指导方针五:关注能带来大收益的方面 273
    18.2 欢迎走入Instruments的世界 273
    18.3 查找内存问题 275
    18.4 查找CPU问题 279
    18.4.1 Accelerate框架 282
    18.4.2 GLKit 283
    18.4.3 编译器优化 283
    18.4.4 链接器优化 284
    18.5 绘图性能 284
    18.6 优化磁盘访问和网络访问 286
    18.7 小结 286
    18.8 扩展阅读 286

    第四部分 超越极限

    第19章 近乎物理效果:UIKit动力学 290
    19.1 动画类、行为和动力项 290
    19.2 UIKit“物理” 291
    19.3 内置行为 292
    19.3.1 迅速移动 292
    19.3.2 附着 292
    19.3.3 推力 293
    19.3.4 重力 294
    19.3.5 碰撞 294
    19.3.6 动力项 295
    19.4 行为层次结构 295
    19.5 自定义操作 295
    19.6 实战:一个“撕开”视图 296
    19.6.1 拖拽视图 296
    19.6.2 撕开该视图 297
    19.6.3 添加额外效果 300
    19.7 多个动力学动画类 301
    19.8 与UICollectionView交互 302
    19.9 小结 305
    19.10 扩展阅读 305

    第20章 魔幻的自定义过渡 306
    20.1 iOS 7中的自定义过渡 306
    20.2 过渡协调器 307
    20.3 集合视图和布局过渡 308
    20.4 使用故事板和自定义联线的自定义视图控制器过渡 308
    20.5 自定义视图控制器过渡:iOS 7风格 308
    20.6 使用iOS 7 SDK的交互式自定义过渡 310
    20.7 小结 312
    20.8 扩展阅读 313

    第21章 精妙的文本布局 314
    21.1 理解富文本 314
    21.1.1 字符与字形 314
    21.1.2 理解字体 316
    21.1.3 段落样式 316
    21.2 属性化字符串 317
    21.2.1 用字体描述符选择字体 318
    21.2.2 设置段落样式 319
    21.2.3 HTML 319
    21.2.4 简化属性化字符串的使用 320
    21.3 动态字体 321
    21.4 Text Kit 322
    21.4.1 Text Kit的组件 323
    21.4.2 多容器布局 324
    21.4.3 排除路径 325
    21.4.4 继承文本容器 326
    21.4.5 继承文本存储 327
    21.4.6 继承布局管理器 331
    21.4.7 针对字形的布局 334
    21.5 Core Text 337
    21.5.1 用CTFramesetter进行简单的布局 337
    21.5.2 为非连续路径创建框架 338
    21.5.3 排版器、文本行、连续文本和字形 340
    21.6 小结 340
    21.7 扩展阅读 341

    第22章 Cocoa的大招:键值编码和观察 342
    22.1 键值编码 342
    22.1.1 用KVC赋值 344
    22.1.2 用键路径遍历属性 345
    22.1.3 KVC和容器类 345
    22.1.4 KVC和字典 347
    22.1.5 KVC和非对象 347
    22.1.6 用KVC实现高阶消息传递 347
    22.1.7 容器操作符 347
    22.2 键值观察 348
    22.2.1 KVO和容器类 350
    22.2.2 KVO是如何实现的 351
    22.3 KVO的权衡 351
    22.4 小结 352
    22.5 扩展阅读 353

    第23章 超越队列:GCD高级功能 354
    23.1 信号量 354
    23.2 分派源 356
    23.3 定时器源 358
    23.4 单次分派 358
    23.5 队列关联数据 359
    23.6 分派数据和分派I/O 362
    23.7 小结 367
    23.8 扩展阅读 367

    第24章 深度解析Objective-C 368
    24.1 理解类和对象 368
    24.2 使用方法和属性 370
    24.3 使用方法签名和调用 372
    24.4 消息传递如何工作 378
    24.4.1 动态实现 378
    24.4.2 快速转发 380
    24.4.3 普通转发 383
    24.4.4 转发失败 384
    24.4.5 各种版本的objc_msgSend 384
    24.5 方法混写 385
    24.6 ISA混写 387
    24.7 方法混写与ISA混写 388
    24.8 小结 389
    24.9 扩展阅读 389
  • 内容简介:
      《iOS编程实战》是受开发者喜爱的iOS进阶图书。它包含大量代码示例,主线是围绕如何设计、编写和维护的iOS应用。开发者可从《iOS编程实战》学到大量关于设计模式、编写可重用代码以及语法与新框架的知识。
      相对上一版,新版进行了大幅修订,新增6章阐述iOS7新特性,并对大部分内容进行了更新,涵盖了iOS7大部分新增特性,包括新的后台操作(第11章)、CoreBluetooth(第13章)、UIKit动力学(第19章)以及TextKit(第21章)。我们提供了如何处理新的扁平化UI的指南(第2章),还新增了一章开发者不太常见但相当实用的“小技巧”(第3章)。
      《iOS编程实战》适合iOS移动开发人员。
  • 作者简介:
      RobNapier 2005年开始从事Mac开发,iPhoneSDK发布时就开始开发iPhone应用。他是TheDaily、PandoraBoy和CiscoMobile的作者,StackOverflow的主要贡献者,并维护技术博客Cocoaphony(cocoaphony.com),主要关注组网、性能、安全和MVC模式。

      MugunthKumar 独立iOS开发者,新加坡南洋理工大学硕士研究生,主修信息系统。其个人博客(blog.mugunthkumar.com)主要发表移动开发、软件可用性、用户体验和iOS相关的文章。从事iOS开发前,他在财富500强企业通用电气和霍尼韦尔担任Windows和.NET平台软件顾问。他关注的领域包括编程方法论(面向对象和函数式编程)、移动开发以及可用性设计。
  • 目录:
    第一部分 全新功能

    第1章 全新的系统 2
    1.1 新的UI 2
    1.2 UIKit Dynamics和Motion Effects 3
    1.3 自定义过渡效果 4
    1.4 新的多任务模式 4
    1.5 Text Kit 5
    1.6 动态字体 5
    1.7 MapKit集成 5
    1.8 SpriteKit 5
    1.9 LLVM 5 5
    1.10 Xcode 5 7
    1.10.1 nib文件格式的变化 7
    1.10.2 源代码控制集成 7
    1.10.3 自动配置 7
    1.10.4 对调试导航面板的改进 8
    1.10.5 文档浏览器 8
    1.10.6 Asset Catalog 9
    1.10.7 测试导航面板 9
    1.10.8 持续集成 10
    1.10.9 Auto Layout改进 10
    1.10.10 iOS模拟器 10
    1.11 其他 10
    1.12 小结 11
    1.13 扩展阅读 11

    第2章 世界是平的:新的UI范式 12
    2.1 清晰、依从和层次 12
    2.2 动画、动画、动画 12
    2.2.1 UIKit Dynamics 13
    2.2.2 UIMotionEffect 13
    2.3 着色 14
    2.4 用半透明实现层次和上下文 14
    2.5 动态字体 15
    2.6 自定义过渡效果 16
    2.7 把应用过渡(迁移)到iOS 7 17
    2.7.1 UIKit变化 17
    2.7.2 自定义设计 17
    2.7.3 支持iOS 6 17
    2.8 小结 20
    2.9 扩展阅读 20

    第二部分 充分利用日常工具

    第3章 你可能不知道的 22
    3.1 命名最佳实践 22
    3.1.1 自动变量 22
    3.1.2 方法 22
    3.2 属性和实例变量最佳实践 23
    3.3 分类 24
    3.4 关联引用 26
    3.5 弱引用容器 27
    3.6 NSCache 28
    3.7 NSURLComponents 28
    3.8 CFStringTransform 29
    3.9 instancetype 30
    3.10 Base64和百分号编码 31
    3.11 -[NSArray firstObject] 31
    3.12 小结 31
    3.13 扩展阅读 32

    第4章 故事板及自定义切换效果 33
    4.1 初识故事板 33
    4.1.1 实例化故事板 34
    4.1.2 加载故事板中的视图控制器 34
    4.1.3 联线 34
    4.1.4 使用故事板来实现表视图 36
    4.2 自定义切换效果 37
    4.2.1 优点 39
    4.2.2 白璧微瑕——合并冲突 39
    4.3 小结 39
    4.4 扩展阅读 39

    第5章 掌握集合视图 41
    5.1 集合视图 41
    5.1.1 类与协议 41
    5.1.2 示例 42
    5.2 用集合视图自定义布局实现高级定制 49
    5.2.1 石工布局 50
    5.2.2 封面浏览布局 55
    5.3 小结 56
    5.4 扩展阅读 56

    第6章 使用自动布局 58
    6.1 Xcode 4的自动布局 58
    6.2 了解自动布局 59
    6.3 Xcode 5中自动布局的新特性 59
    6.3.1 在Xcode 5中使用自动布局 61
    6.3.2 固有尺寸 62
    6.3.3 固有尺寸和本地化 63
    6.3.4 设计时和运行时布局 63
    6.3.5 自动更新边框 64
    6.3.6 顶部和底部布局引导 65
    6.3.7 辅助编辑器中的布局预览 65
    6.3.8 在设计时调试自动布局 65
    6.3.9 在自动布局中使用滚动视图 66
    6.3.10 使用自动布局和边框 66
    6.3.11 可视格式化语言 66
    6.3.12 可视格式化语言的缺点 67
    6.3.13 调试布局错误 68
    6.4 小结 69
    6.5 扩展阅读 69

    第7章 更完善的自定义绘图 71
    7.1 iOS的不同绘图系统 71
    7.2 UIKit和视图绘图周期 72
    7.3 视图绘制与视图布局 73
    7.4 自定义视图绘制 74
    7.4.1 通过UIKit绘图 74
    7.4.2 路径 75
    7.4.3 理解坐标系 77
    7.4.4 重新调整大小以及内容模式 79
    7.4.5 变形 80
    7.4.6 通过Core Graphics进行绘制 82
    7.4.7 混用UIKit与Core Graphics 85
    7.4.8 管理图形上下文 85
    7.5 优化UIView绘制 87
    7.5.1 避免绘图 87
    7.5.2 缓存与后台绘制 88
    7.5.3 自定义绘图与预渲染 88
    7.5.4 像素对齐与模糊文本 89
    7.5.5 透明、不透明与隐藏 90
    7.6 小结 90
    7.7 扩展阅读 91

    第8章 Core Animation 92
    8.1 视图动画 92
    8.2 管理用户交互 94
    8.3 图层绘制 94
    8.3.1 直接设置内容 96
    8.3.2 实现display方法 97
    8.3.3 自定义绘图 97
    8.3.4 在自己的上下文中绘图 99
    8.4 移动对象 99
    8.4.1 隐式动画 100
    8.4.2 显式动画 101
    8.4.3 模型与表示 101
    8.4.4 关于定时 103
    8.5 三维动画 105
    8.6 美化图层 108
    8.7 用动作实现自动动画 108
    8.8 为自定义属性添加动画 110
    8.9 Core Animation与线程 111
    8.10 小结 111
    8.11 扩展阅读 111

    第9章 多任务 113
    9.1 多任务和运行循环简介 113
    9.2 以操作为中心的多任务开发 114
    9.3 用GCD实现多任务 118
    9.3.1 分派队列简介 119
    9.3.2 用分派屏障创建同步点 120
    9.3.3 分派组 121
    9.4 小结 121
    9.5 扩展阅读 121

    第三部分 选择工具

    第10章 创建(Core)Foundation框架 124
    10.1 Core Foundation类型 124
    10.2 命名和内存管理 125
    10.3 分配器 126
    10.4 内省 126
    10.5 字符串和数据 127
    10.5.1 常量字符串 127
    10.5.2 创建字符串 128
    10.5.3 转换为C字符串 129
    10.5.4 其他字符串操作符 131
    10.5.5 字符串的支持存储 131
    10.5.6 CFData 132
    10.6 容器类型 132
    10.6.1 CFArray 133
    10.6.2 CFDictionary 133
    10.6.3 CFSet和CFBag 134
    10.6.4 其他容器类型 134
    10.6.5 回调函数 134
    10.7 自由桥接 136
    10.8 小结 139
    10.9 扩展阅读 139

    第11章 幕后制作:后台处理 140
    11.1 后台运行最佳实践:能力越大责任越大 140
    11.2 iOS 7中后台运行的重要变化 142
    11.3 用NSURLSession访问网络 142
    11.3.1 会话配置 143
    11.3.2 任务 143
    11.3.3 后台传输 144
    11.4 周期性拉取和自适应多任务 146
    11.5 后台唤醒 146
    11.6 状态恢复系统 147
    11.6.1 测试状态恢复系统 147
    11.6.2 选择性加入 148
    11.6.3 应用启动过程的变化 149
    11.6.4 状态恢复标识符 149
    11.6.5 状态编码器与状态解码器 149
    11.6.6 表视图和集合视图 153
    11.7 小结 154
    11.8 扩展阅读 154

    第12章 使用REST服务 156
    12.1 REST简介 157
    12.2 选择数据交换格式 157
    12.2.1 在iOS中解析XML 157
    12.2.2 在iOS中解析JSON 158
    12.2.3 XML与JSON 159
    12.2.4 模型版本化 160
    12.3 假想的Web服务 160
    12.4 重要提醒 161
    12.5 RESTfulEngine架构(iHotelApp示例代码) 161
    12.5.1 NSURLConnection与第三方框架 161
    12.5.2 创建RESTfulEngine 162
    12.5.3 使用访问令牌对API调用进行认证 165
    12.5.4 在RESTfulEngine.m中覆盖相关方法以添加自定义认证头部 165
    12.5.5 取消请求 166
    12.5.6 请求响应 166
    12.5.7 对JSON数据进行键值编码 167
    12.5.8 列表页面的JSON对象与详细页面的JSON对象 169
    12.5.9 嵌套JSON对象 169
    12.5.10 少即是多 171
    12.5.11 错误处理 171
    12.5.12 本地化 173
    12.5.13 使用分类处理其他格式 173
    12.5.14 在iOS中提升性能的小技巧 174
    12.6 缓存 174
    12.7 需要离线支持的原因 174
    12.8 缓存策略 175
    12.8.1 存储缓存 175
    12.8.2 缓存版本和失效 178
    12.9 数据模型缓存 178
    12.10 缓存版本控制 182
    12.11 创建内存缓存 183
    12.11.1 为AppCache设计内存缓存 184
    12.11.2 处理内存警告 185
    12.11.3 处理结束和进入后台通知 186
    12.12 创建URL缓存 186
    12.12.1 过期模型 187
    12.12.2 验证模型 187
    12.12.3 示例 187
    12.12.4 用URL缓存来缓存图片 188
    12.13 小结 188
    12.14 扩展阅读 188

    第13章 充分利用蓝牙设备 190
    13.1 蓝牙历史 190
    13.2 为什么选择低功耗蓝牙 191
    13.3 蓝牙SDK 191
    13.3.1 服务器 191
    13.3.2 客户端 191
    13.4 类和协议 191
    13.5 使用蓝牙设备 192
    13.5.1 通过扫描寻找服务 192
    13.5.2 连接设备 194
    13.5.3 直接获取外围设备 194
    13.5.4 发现服务 194
    13.5.5 发现特性 195
    13.6 创建自己的外围设备 197
    13.6.1 广播服务 197
    13.6.2 常见场景 200
    13.7 在后台运行 200
    13.7.1 后台模式 200
    13.7.2 电量考虑 200
    13.7.3 状态保存和恢复 200
    13.8 小结 201
    13.9 扩展阅读 201

    第14章 通过安全服务巩固系统安全 203
    14.1 理解iOS沙盒 203
    14.2 保证网络通信的安全 204
    14.2.1 证书工作原理 205
    14.2.2 检验证书的有效性 207
    14.2.3 判断证书的可信度 210
    14.3 使用文件保护 211
    14.4 使用钥匙串 213
    14.5 使用加密 216
    14.5.1 AES概要 217
    14.5.2 使用PBKDF2将密码转换成密钥 217
    14.5.3 AES模式和填充 219
    14.5.4 初始化向量 220
    14.5.5 使用HMAC进行认证 221
    14.5.6 错误的密码 222
    14.5.7 组合使用加密和压缩 222
    14.6 小结 222
    14.7 扩展阅读 222

    第15章 在多个苹果平台和设备及64位体系结构上运行应用 224
    15.1 开发多平台应用 225
    15.1.1 可配置的目标设置:Base SDK和Deployment Target 225
    15.1.2 支持多个SDK时的注意事项:框架、类和方法 225
    15.1.3 检查框架、类和方法的可用性 227
    15.2 检测设备的功能 228
    15.2.1 检测设备及判断功能 228
    15.2.2 检测硬件和传感器 229
    15.3 应用内发送Email和短信 233
    15.4 支持新的4英寸设备族系 233
    15.4.1 Cocoa自动布局 235
    15.4.2 代码中固化屏幕尺寸 235
    15.4.3 iPhone 5s和新的64位指令集 235
    15.5 向iOS 7迁移 236
    15.5.1 自动布局 236
    15.5.2 支持iOS 6 236
    15.5.3 应用图标 237
    15.5.4 边界按钮 237
    15.5.5 着色 237
    15.5.6 图片更新 237
    15.6 向64位体系结构迁移 238
    15.6.1 数据溢出 238
    15.6.2 序列化数据 239
    15.6.3 针对64位体系结构的条件编译 239
    15.7 UIRequiredDeviceCapabilities 239
    15.8 小结 240
    15.9 扩展阅读 240

    第16章 国际化和本地化 242
    16.1 什么是本地化 242
    16.2 本地化字符串 243
    16.3 对未本地化的字符串进行审查 244
    16.4 格式化数字和日期 245
    16.5 nib文件和Base Internationalization 248
    16.6 本地化复杂字符串 248
    16.7 小结 250
    16.8 扩展阅读 251

    第17章 调试 252
    17.1 LLDB 252
    17.2 使用LLDB进行调试 252
    17.2.1 dSYM文件 253
    17.2.2 符号化 254
    17.3 断点 255
    17.4 观察点 258
    17.5 LLDB控制台 259
    17.6 NSZombieEnabled标志 262
    17.7 不同的崩溃类型 263
    17.7.1 EXC_BAD_ACCESS 263
    17.7.2 SIGSEGV 263
    17.7.3 SIGBUS 264
    17.7.4 SIGTRAP 264
    17.7.5 EXC_ARITHMETIC 264
    17.7.6 SIGILL 264
    17.7.7 SIGABRT 264
    17.7.8 看门狗超时 265
    17.7.9 自定义错误信号处理程序 265
    17.8 断言 265
    17.9 异常 267
    17.10 收集崩溃报告 268
    17.11 第三方崩溃报告服务 269
    17.12 小结 270
    17.13 扩展阅读 270

    第18章 性能调优 272
    18.1 性能思维模式 272
    18.1.1 指导方针一:产品是为了取悦用户才存在的 272
    18.1.2 指导方针二:设备是为了方便用户而存在的 272
    18.1.3 指导方针三:做到极致 272
    18.1.4 指导方针四:用户的感知才是实际的 273
    18.1.5 指导方针五:关注能带来大收益的方面 273
    18.2 欢迎走入Instruments的世界 273
    18.3 查找内存问题 275
    18.4 查找CPU问题 279
    18.4.1 Accelerate框架 282
    18.4.2 GLKit 283
    18.4.3 编译器优化 283
    18.4.4 链接器优化 284
    18.5 绘图性能 284
    18.6 优化磁盘访问和网络访问 286
    18.7 小结 286
    18.8 扩展阅读 286

    第四部分 超越极限

    第19章 近乎物理效果:UIKit动力学 290
    19.1 动画类、行为和动力项 290
    19.2 UIKit“物理” 291
    19.3 内置行为 292
    19.3.1 迅速移动 292
    19.3.2 附着 292
    19.3.3 推力 293
    19.3.4 重力 294
    19.3.5 碰撞 294
    19.3.6 动力项 295
    19.4 行为层次结构 295
    19.5 自定义操作 295
    19.6 实战:一个“撕开”视图 296
    19.6.1 拖拽视图 296
    19.6.2 撕开该视图 297
    19.6.3 添加额外效果 300
    19.7 多个动力学动画类 301
    19.8 与UICollectionView交互 302
    19.9 小结 305
    19.10 扩展阅读 305

    第20章 魔幻的自定义过渡 306
    20.1 iOS 7中的自定义过渡 306
    20.2 过渡协调器 307
    20.3 集合视图和布局过渡 308
    20.4 使用故事板和自定义联线的自定义视图控制器过渡 308
    20.5 自定义视图控制器过渡:iOS 7风格 308
    20.6 使用iOS 7 SDK的交互式自定义过渡 310
    20.7 小结 312
    20.8 扩展阅读 313

    第21章 精妙的文本布局 314
    21.1 理解富文本 314
    21.1.1 字符与字形 314
    21.1.2 理解字体 316
    21.1.3 段落样式 316
    21.2 属性化字符串 317
    21.2.1 用字体描述符选择字体 318
    21.2.2 设置段落样式 319
    21.2.3 HTML 319
    21.2.4 简化属性化字符串的使用 320
    21.3 动态字体 321
    21.4 Text Kit 322
    21.4.1 Text Kit的组件 323
    21.4.2 多容器布局 324
    21.4.3 排除路径 325
    21.4.4 继承文本容器 326
    21.4.5 继承文本存储 327
    21.4.6 继承布局管理器 331
    21.4.7 针对字形的布局 334
    21.5 Core Text 337
    21.5.1 用CTFramesetter进行简单的布局 337
    21.5.2 为非连续路径创建框架 338
    21.5.3 排版器、文本行、连续文本和字形 340
    21.6 小结 340
    21.7 扩展阅读 341

    第22章 Cocoa的大招:键值编码和观察 342
    22.1 键值编码 342
    22.1.1 用KVC赋值 344
    22.1.2 用键路径遍历属性 345
    22.1.3 KVC和容器类 345
    22.1.4 KVC和字典 347
    22.1.5 KVC和非对象 347
    22.1.6 用KVC实现高阶消息传递 347
    22.1.7 容器操作符 347
    22.2 键值观察 348
    22.2.1 KVO和容器类 350
    22.2.2 KVO是如何实现的 351
    22.3 KVO的权衡 351
    22.4 小结 352
    22.5 扩展阅读 353

    第23章 超越队列:GCD高级功能 354
    23.1 信号量 354
    23.2 分派源 356
    23.3 定时器源 358
    23.4 单次分派 358
    23.5 队列关联数据 359
    23.6 分派数据和分派I/O 362
    23.7 小结 367
    23.8 扩展阅读 367

    第24章 深度解析Objective-C 368
    24.1 理解类和对象 368
    24.2 使用方法和属性 370
    24.3 使用方法签名和调用 372
    24.4 消息传递如何工作 378
    24.4.1 动态实现 378
    24.4.2 快速转发 380
    24.4.3 普通转发 383
    24.4.4 转发失败 384
    24.4.5 各种版本的objc_msgSend 384
    24.5 方法混写 385
    24.6 ISA混写 387
    24.7 方法混写与ISA混写 388
    24.8 小结 389
    24.9 扩展阅读 389
查看详情
其他版本 / 全部 (1)
系列丛书 / 更多
iOS编程实战
机器学习实战
[美]Peter Harrington 著;李锐、李鹏、曲亚东 译
iOS编程实战
图灵程序设计丛书:Python基础教程
[挪威]Magnus Lie Hetland 著;司维、曾军崴、谭颖华 译
iOS编程实战
JavaScript高级程序设计(第3版)
[美]Nicholas C.Zakas 著;李松峰、曹力 译
iOS编程实战
Python编程:从入门到实践
[美]埃里克·马瑟斯(Eric Matthes) 著;袁国忠 译
iOS编程实战
R语言实战(第2版)
[美]卡巴科弗(Robert I. Kabacoff) 著;王小宁、刘撷芯、黄俊文 译
iOS编程实战
算法(第4版)
[美]Robert、[美]Kevin Wayne 著;谢路云 译
iOS编程实战
大数据:互联网大规模数据挖掘与分布式处理
[美]Anand、[美]Jeffrey David Ullman 著;王斌 译
iOS编程实战
Spark快速大数据分析
[美]卡劳(Holden Karau)、[美]肯维尼斯科(Andy Konwinski)、[美]温德尔(Patrick Wendell)、[加拿大]扎哈里亚(Matei Zaharia) 著;王道远 译
iOS编程实战
MySQL必知必会
[英]福塔(Ben Forta) 著;刘晓霞、钟鸣 译
iOS编程实战
Objective-C基础教程 第2版
[美]Scott、[美]Waqar、[美]Mark Dalrymple 著;周庆成 译
iOS编程实战
图解HTTP
[日]上野·宣 著;于均良 译
iOS编程实战
算法图解
袁国忠 译
相关图书 / 更多
iOS编程实战
iOS黑客攻防秘籍 第2版
陈德
iOS编程实战
iOS编程(第6版)
[美]Aaron Hillegass 著;王凤全 译;[美]Christian Keur
iOS编程实战
iOS开发基础教程(Swift版)(第2版)
陈志峰;田英;翟高粤
iOS编程实战
iOS开发案例教程(swift版)
孙志敏 田英
iOS编程实战
iOS应用开发教程(微课视频版)
罗良夫
iOS编程实战
iOS全埋点解决方案
王灼洲 著
iOS编程实战
iOS 14开发指南
管蕾
iOS编程实战
iOS应用逆向与安全之道
罗巍 著
iOS编程实战
iOS项目开发实战(高等职业教育移动互联应用技术专业教材)
赵善龙 、刘俊驰 主编
iOS编程实战
iOS开发基础入门与实战
张运生 著;郭敏强、蔡铁、郭敏强、蔡铁、张运生 编
iOS编程实战
iOS面试一战到底
张益珲 著
iOS编程实战
iOS程序员面试笔试真题库
蒋信厚 汪小发 楚秦
您可能感兴趣 / 更多
iOS编程实战
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
iOS编程实战
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
iOS编程实战
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
iOS编程实战
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
iOS编程实战
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
iOS编程实战
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
iOS编程实战
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
iOS编程实战
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
iOS编程实战
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
iOS编程实战
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
iOS编程实战
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
iOS编程实战
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译