前言 1
第一部分 语言 13
第1章 C语言的必备知识 13
编译、语句和注释 14
选择编译器 15
变量声明、初始化和数据类型 16
现代的枚举语法 17
结构体 19
指针 20
数组 23
运算符 24
程序流控制和条件语句 26
函数 29
指针参数和地址运算符 32
文件 34
现代Objective-C语言的函数声明 36
标准库 37
更多的预处理指令 37
数据类型限定符 38
第2章 面向对象的编程 41
对象 41
消息和方法 42
类和实例 43
类的方法 45
实例变量 46
面向对象的基本原理 47
第3章 Objective-C语言对象与消息 51
实例引用即为指针 51
实例的引用、初始化以及nil 53
实例引用和赋值 55
实例引用和内存管理 57
消息和方法 57
发送消息 58
方法声明 59
嵌套方法调用 60
不重载 60
参数列表 61
无法识别的选择器 62
类型转换和id类型 63
消息的数据类型 67
C语言函数 67
CFTypeRefs 68
块对象 70
第4章 Objective-C类 74
类和父类 74
接口和实现 75
头文件和实现文件 77
Cocoa自己的头文件 79
类方法 80
悄然产生的类对象 80
第5章 Objective-C实例 82
实例的创建 82
现成的实例化 82
从零开始实例化 83
基于nib的实例化 86
多态 87
self关键字 88
super关键字 92
实例变量和存取器 93
键-值编码 95
属性 96
如何写初始化器 98
第二部分 集成开发环境 103
第6章 Xcode工程的解析 103
新建项目 104
项目窗口 106
导航面板 106
工具面板 111
编辑器 112
项目文件和它所依赖的环境 115
目标 117
构建编译阶段 118
创建设置 119
配置 120
方案和目标设备 121
从项目到程序 123
创建设置 125
属性列表设置 125
nib文件和storyboard文件 126
其他资源 127
代码 128
框架和SDK 130
重命名事项 131
第7章 nib管理 134
Nib编辑界面体验之旅 135
Dock 136
画布 137
监视器和库 139
nib加载和文件的所有者 141
制作和加载一个nib 142
出口连接 143
创建出口的更多方法 148
更多关于出口 150
连接代码是一种错觉 151
nib之间的连接 151
动作连接 151
其他基于nib实例的初始化 154
第8章 文档 157
文档窗口 157
类文档页 159
示例代码 162
其他资源 163
快速帮助 163
符号 164
头文件 164
互联网资源 165
第9章 项目的生命周期 167
设备架构及条件代码 167
其他模拟器的SDK 168
本地化 171
编辑代码 175
自动完成 176
代码片段 178
Fix-it功能和实时语法检查 178
你的代码导航 179
调试 181
原始调试 182
Xcode调试 184
调试器选取 186
单元测试 189
静态分析器 190
清理 190
在模拟器中运行 191
在设备上运行 192
配置文件与设备管理 196
版本控制 196
Instruments 198
发布 202
Ad Hoc发布 204
应用程序的最后准备 205
应用程序中的图标 205
其他图标 206
启动图像 207
截图 209
属性列表设置 209
提交到App Store 211
如果许可证过期怎么办? 214
第三部分 Cocoa 217
第10章 Cocoa类 217
子类 217
类别 220
分割一个类 221
类扩展 222
协议 223
非正式协议 227
可选方法 227
一些Foundation类 229
有用的结构体和常量 229
NSString及其相关类 229
NSDate及其相关类 231
NSNumber 232
NSValue 233
NSData 233
相等性和比较 234
NSIndexSet 234
NSArray和NSMutableArray 235
NSSet及其相关类 237
NSDictionary和NSMutableDictionary 238
NSNull 240
不可变和可变 240
属性列表 241
NSObject探秘 241
第11章 Cocoa事件 244
收到事件的原因 245
子类化 245
通知 246
接收一个内置的通知 247
注销 249
NSTimer 251
委托 251
数据源 254
动作 255
响应者链 257
推迟响应 258
Nil-targeted动作 258
术语“First Responder” 259
被事件淹没 259
延迟执行 262
应用程序生存期事件 264
第12章 访问器和内存管理 269
键值编码 270
键值编码和Outlet 272
键路径和访问器数组 273
内存管理 274
Cocoa内存管理的原则 275
调试内存管理错误 276
内存管理的金科玉律 276
ARC的功能及用途 278
Cocoa对象如何管理内存 280
自动释放 283
实例变量的内存管理(非ARC) 285
实例变量的内存管理(ARC) 289
保留环和弱引用 290
非常规内存管理情况 292
nib加载和内存管理 296
全局变量的内存管理 297
指向void上下文信息指针的内存管理 298
CFTypeRefs的内存管理 300
属性 302
属性内存管理策略 303
属性声明语法 304
属性访问器合成 306
动态访问器 308
第13章 数据通信 311
模型-视图-控制器 311
实例的可见性 313
通过实例化获得可见性 314
通过关系获得可见性 315
全局可见性 315
通知 316
键-值观察 317
第四部分 视图 325
第14章 视图 325
窗口 325
子视图和超视图 328
可见性与不透明度 331
框架 332
边框和中心 332
窗口坐标和屏幕坐标 335
变换 336
布局 340
自动缩放 341
自动布局 343
Nib中的约束 352
布局事件的发生顺序 356
自动布局和视图变换 357
第15章 绘图 360
UIImage和UIImageView 360
绘图上下文 366
UIImage绘图 369
CGImage绘图 370
为何发生翻转 373
CIFilter和CIImage 374
绘制UIView 377
设置绘图上下文 379
路径和绘图 380
裁剪 384
我的上下文有多大? 385
渐变 385
色彩和图案 386
绘图上下文变换 388
阴影 390
点和像素 391
内容模式 392
第16章 图层 394
视图和图层 395
图层和子层 396
操纵图层层次结构 398
定位子层 399
CAScrollLayer 400
子层的布局 400
在图层中绘图 401
自动重新显示视图的基础图层 404
调整内容尺寸及定位 404
图层的自我绘制 406
变换 407
深度 410
阴影、边框和其他 413
图层效率 415
图层和键值编码 416
第17章 动画 418
绘图、动画和线程 419
表示图层 421
UIImageView和UIImag动画 421
视图动画 423
动画块 423
修改动画块 424
过渡动画 428
基于Block的视图动画 429
隐含层动画 434
动画事务 435
事务的真相 436
媒体定时函数 437
Core Animation 438
CABasicAnimation类及其继承 438
使用CABasicAnimation 440
关键帧动画 443
使属性可动画处理 444
编组动画 445
过渡 449
动画列表 451
动画和自动布局 453
动作 455
动作的定义 456
动作搜索 456
挂钩到动作搜索 457
非属性动作 460
发射器图层 461
CIFilter过渡 467
第18章 触摸 469
触摸事件和视图 470
接收触摸 471
限制触摸 473
解释触摸 474
手势识别器 478
手势识别器类 479
多个手势识别器 483
手势识别器委托 486
Nib中的手势识别器 489
触摸传递 489
触碰测试 490
初始化触摸事件传递 495
手势识别器和视图 496
限制触摸 497
重新识别 497
触摸和响应者链 498
第五部分 界面 503
第19章 视图控制器 503
视图控制器层次结构 506
视图控制器和视图创建 510
手动视图 512
普通自动化视图 515
在单独的Nib中的视图 516
视图什么时候被加载? 519
Nib实例化的视图控制器 519
storyboard初始化的视图控制器 521
旋转 524
什么旋转了? 527
旋转和布局事件 527
初始朝向 531
被展示的视图控制器 533
什么是模态? 538
被展示的视图动画 538
展示风格 539
被展示的视图的旋转 541
作为对旋转的响应展示一个视图 542
标签栏控制器 543
标签栏条目 544
配置一个标签栏控制器 545
导航控制器 547
栏上按钮条目 550
导航条目 551
工具栏条目 554
配置一个导航控制器 554
分页视图控制器 557
容器视图控制器 561
Storyboard 564
Segue 565
回溯Segue 567
storyboard和定制的容器视图控制器 571
视图控制器生命周期事件 572
视图控制器内存管理 576
状态恢复 578
参与到状态恢复中 580
恢复ID和恢复类 582
恢复视图控制器状态 589
第20章 滚动视图 594
创建一个滚动视图 594
滚动 600
分页 602
区块 604
缩放 605
以编程方式缩放 607
细节的缩放 608
滚动视图代理 610
滚动视图的触摸 612
滚动视图性能 617
第21章 表格视图和集合视图 619
表格视图单元格 622
内置的单元格样式 622
注册一个单元格类 628
定制单元格 631
表格视图数据 637
三个大问题 638
表格视图节 641
刷新表格视图数据 647
可变的行高 650
表格视图选择 652
表格视图滚动和布局 657
表格视图状态恢复 658
表格视图搜索 659
表格视图编辑 665
删除表格项 668
表格项中可编辑的内容 669
插入表格项 670
重新排列表格项 672
动态表格内容 673
表格视图菜单 674
集合视图 676
第22章 弹出框和分割视图 685
配置和显示一个弹出框 686
管理一个弹出框 691
关闭一个弹出框 692
弹出框和被展示视图 695
弹出框Segue 695
自动弹出框 697
分隔视图 699
第23章 文本 703
带属性的字符串 704
UILabel 712
UITextField 715
弹出和关闭键盘 718
键盘覆盖文本域 719
配置键盘 722
文本域代理和控制事件消息 724
文本字段菜单 726
UITextView 728
核心文本 731
UITextInput 737
第24章 Web视图 738
加载Web视图内容 739
Web视图状态恢复 745
和一个Web视图通信 746
第25章 控件和其他视图 749
UIActivityIndicatorView 749
UIProgressView 751
UIPickerView 753
UISearchBar 755
UIControl 759
在内部触摸和在外部触摸 760
UISwitch 762
UIStepper 764
UIPageControl 765
UIDatePicker 766
UISlider 768
UISegmentedControl 771
UIButton 774
自定义控件 779
栏 782
UINavigationBar 783
风景iPhone栏计量 784
UIToolbar 788
UITabBar 788
外观代理 792
第26章 模态对话框 796
警告视图 797
动作表单 800
对话框的替代选择 804
本地通知 805
活动视图 808
第六部分 框架 815
第27章 音频 815
系统声音 815
音频会话 816
中断 819
切换音频通道 820
音频播放器 821
声音的遥控 823
声音的后台播放 825
更多有关声音的主题 827
第28章 视频 829
MPMoviePlayerController 830
MPMoviePlayerViewController 835
UIVideoEditorController 837
AV Foundation视频介绍 839
第29章 音乐库 844
浏览音乐库 844
音乐播放器 849
音乐选择器 854
第30章 图片库和拍摄图像 858
UIImagePickerController 858
从图片库中选取 859
使用照相机 863
使用AV Foundation拍摄图像 867
Assets Library框架 869
第31章 地址簿 874
地址簿数据库 874
地址簿的界面 878
ABPeoplePickerNavigationController 879
ABPersonViewController 880
ABNewPersonViewController 881
ABUnknownPersonViewController 882
第32章 日历 885
日历数据库 885
日历界面 895
第33章 邮件和消息 901
邮件消息 902
文本消息 903
Twitter帖子 904
第34章 地图 905
显示一张地图 905
注释 908
覆盖图 914
地图工具包和当前位置 920
地理编码 922
与Maps应用程序的通信 923
第35章 传感器 926
位置 926
朝向 931
加速度和姿态 932
摇动事件 933
单纯的加速度 934
陀螺仪 938
第七部分 其他主题 945
第36章 持久性存储 945
沙箱 945
以可视方式检查沙箱 947
基本的文件操作 947
文件的存取 948
用户默认值 950
文件的共享 951
文档类型 952
分发文档 954
文档架构 957
iCloud 961
XML 963
SQLite 969
Core Data框架 970
图像文件格式 976
第37章 网络基础 979
HTTP请求 979
Bonjour 987
推送通知 989
其他网络话题 990
第38章 线程 991
主线程 991
并发到底是什么? 992
为什么线程很难 994
三种实现线程的方法 995
手动线程 996
NSOperation 998
Grand Central Dispatch 1003
线程和应用程序的后台处理 1007
第39章 撤销 1010
撤销管理器 1010
撤销的界面 1014
撤销的架构 1017
第40章 结束语 1019