《iOS 6编程实战》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)RobNapierMugunthKumar著;陈晓亮,武海峰,邓强,周庆成译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2013
  • ISBN:9787115312181
  • 页数:432 页
图书介绍:本书针对iOS 6进行了全面更新,从安全、多任务处理、多平台运行、模块和函数式编程、高级文本布局等多个方面讲述了如何为iPad、iPhone和iPod touch打造杀手级应用、如何实现性能最大化,并且利用应用内购买获取最大收益。

第一部分 全新功能 2

第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

第二部分 熟能生巧 30

第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.1uITableView类的继承关系 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

第三部分 选择工具 170

第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可配置的目标设置:BaseSDK和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

第四部分 超越极限 320

第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的enumerationWithBlock遍历字典 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