第1部分 入门 1
第1章 读者与本书 3
1.1 C与Objective-C 3
1.2主要内容及阅读方式 4
1.3程序员要走的道路 4
第2章 第一个程序 7
2.1安装 Apple开发工具软件 7
2.2 Xcode入门 7
2.3从哪里开始编写代码 9
2.4如何运行程序 13
2.5程序是如何产生的 14
2.6不要半途而废 15
第2部分 如何编程 17
第3章 变量与类型 19
3.1类型 19
3.2使用变量的程序 20
3.3练习 22
第4章 if和else 23
4.1布尔变量 24
4.2 else if 25
4.3深入学习:条件运算符(三元运算符) 25
4.4练习 26
第5章 函数 27
5.1应该在何时使用函数 27
5.2如何编写并使用函数 27
5.3函数间是如何协同工作的 30
5.4局部变量、帧和栈 32
5.5递归 34
5.6通过调试器查看帧 35
5.7 return 37
5.8全局变量与静态变量 39
5.9练习 40
第6章 数字 41
6.1 print() 41
6.2整数 42
6.3浮点数 46
6.4练习 47
第7章 循环 49
7.1 while循环 49
7.2 for循环 50
7.3 break 51
7.4 continue 52
7.5 do-while循环 53
7.6练习 54
第8章 地址与指针 55
8.1获取地址 55
8.2用指针保存地址 56
8.3通过地址访问数据 57
8.4不同类型的数据所占用的字节大小 57
8.5 NULL 58
8.6指针声明的代码规范 59
8.7练习 59
第9章 通过引用传递 61
9.1编写通过引用传递参数的函数 62
9.2不要对NULL取值 64
第10章 结构 65
10.1练习 66
第11章 堆 69
第3部分 Objective-C与Foundation 73
第12章 对象 75
12.1创建并使用对象 75
12.2消息详解 77
12.3内存中的对象 79
12.4 id 79
12.5练习 80
第13章 再谈消息 81
13.1消息的嵌套发送 81
13.2多个实参 82
13.3向nil发送消息 82
13.4练习 83
第14章 NSString 85
14.1练习 86
第15章 NSArray 87
15.1 NSMutableArray 89
15.2练习 90
第16章 开发文档 93
16.1参考页 94
16.2快速帮助 96
16.3其他文档功能和开发资源 98
第17章 第一个自定义类 101
17.1存取方法 103
17.2用点号调用存取方法 104
17.3属性 105
17.4 self 106
17.5多个实现文件 106
17.6练习 106
第18章 继承 109
18.1覆盖方法 112
18.2 super 113
18.3练习 113
第19章 对象实例变量 115
19.1对象所有权与ARC 117
19.2练习 123
第20章 避免内存泄露 125
20.1 Retain循环 127
20.2弱引用 129
20.3弱引用的自动置零特性 130
20.4深入学习:手动引用计数和ARC历史 131
第21章 Collection类 135
21.1 NSArray/NSMutableArray 135
21.2 NSSet/NSMutableSet 138
21.3 NSDictionary/NSMutableDictionary 140
21.4 C语言基本类型 142
21.5 Collection对象与nil 142
21.6练习 143
第22章 常量 145
22.1预处理指令 145
22.2 #include与#import 146
22.3 #define 146
22.4全局变量 147
22.5比较#define与全局变量 149
第23章 通过NSString和NSData将数据写入文件 151
23.1将NSString对象写入文件 151
23.2 NSEr or 152
23.3通过NSString读取文件 153
23.4将NSData对象所保存的数据写入文件 154
23.5从文件读取数据并存入NSData对象 155
第24章 回调 157
24.1目标-动作对 157
24.2辅助对象 160
24.3通告 163
24.4如何选择 164
24.5回调与对象所有权 164
第25章 协议 167
第26章 Property List格式 171
26.1练习 173
第4部分 由事件驱动的应用 175
第27章 第一个iOS应用 177
27.1创建iTahDoodle 177
27.2 BNRAppDelegate 179
27.3添加C语言辅助函数 180
27.4 iTahDoodle中的对象 181
27.5 Model-View-Controller 182
27.6应用委托对象 183
27.7设置视图 184
27.8为UITableView对象提供数据 186
27.9添加新任务 189
27.10深入学习:main()的作用 190
第28章 第一个Cocoa应用 191
28.1编辑BNRDocument.h 192
28.2 Interface Builder初探 193
28.3编辑BNRDocument.xib 194
28.4创建关联 198
28.5再探MVC 202
28.6编辑BNRDocument.m 202
28.7练习 204
第5部分 Objective-C高级主题 205
第29章 init 207
29.1编写init方法 207
29.2实现基本的init方法 208
29.3在init中使用存取方法 209
29.4带实参的init方法 210
29.5禁用init方法 215
第30章 属性 217
30.1属性的特性 218
30.2 KVC 221
第31章 范畴 225
第32章 Block对象 227
32.1定义Block对象 227
32.2使用Block对象 228
32.3 typedef 233
32.4返回值 233
32.5内存管理 234
32.6基于Block的编程是大势所趋 235
32.7练习 235
第6部分 C语言高级主题 237
第33章 位运算 239
33.1按位或 240
33.2按位与 241
33.3其他位运算符 242
33.4用enum定义位掩码 245
33.5占用更多字节的整数类型 245
33.6练习 245
第34章 C字符串 247
34.1 char 247
34.2 char 248
34.3 string literal 250
34.4 C字符串和NSString对象的相互转换 251
34.5 练习 252
第35章 C数组 253
第36章 命令行参数 257
第37章 switch语句 261
结束语 263
索引 265