预览目录
1引言 1
第一部分Objective-C语言
2Objective-C编程 9
3类、对象和方法 29
4数据类型和表达式 53
5循环结构 73
6选择结构 95
7类 129
8继承 155
9多态、动态类型和动态绑定 181
10变量和数据类型 199
11分类和协议 223
12预处理程序 239
13基本的C语言特性 253
第二部分Foundation框架
14Foundation框架简介 311
15数字、字符串和集合 315
16使用文件 379
17内存管理和自动引用计数 409
18复制对象 423
19归档 435
第三部分Cocoa、Cocoa Touch与iOS的SDK
20Cocoa和Cocoa Touch简介 453
21编写iOS应用程序 457
附录A术语表 489
附录B地址簿示例源代码 501
目录
1引言 1
1.1 本书内容 2
1.2 本书组织方式 3
1.3 支持 5
1.4 致谢 6
1.5 第6版前言 7
第一部分Objective-C语言
2Objective-C编程 9
2.1 编译并运行程序 9
2.1.1 使用Xcode 10
2.1.2 使用Terminal 17
2.2 解释第一个程序 20
2.3 显示变量的值 24
2.4 小结 26
2.5 练习 27
3类、对象和方法 29
3.1 到底什么是对象 29
3.2 实例和方法 30
3.3 用于处理分数的Objective-C类 32
3.4 @interface部分 35
3.4.1 选择名称 35
3.4.2 类方法和实例方法 37
3.5 @implementation部分 39
3.6 program部分 41
3.7 实例变量的访问及数据封装 47
3.8 小结 51
3.9 练习 51
4数据类型和表达式 53
4.1 数据类型和常量 53
4.1.1 int类型 53
4.1.2 float类型 54
4.1.3 char类型 54
4.1.4 限定词:long、long long、short、unsigned及signed 55
4.1.5 id类型 56
4.2 算术表达式 57
4.2.1 运算符的优先级 57
4.2.2 整数运算和一元负号运算符 60
4.2.3 模运算符 62
4.2.4 整型值和浮点值的相互转换 63
4.2.5 类型转换运算符 65
4.3 赋值运算符 66
4.4 Calculator类 67
4.5 练习 70
5循环结构 73
5.1 for语句 74
5.1.1 键盘输入 81
5.1.2 嵌套的for循环 83
5.1.3 for循环的变体 85
5.2 while语句 86
5.3 do语句 90
5.4 break语句 92
5.5 continue语句 92
5.6 小结 93
5.7 练习 93
6选择结构 95
6.1 if语句 95
6.1.1 if-else结构 100
6.1.2 复合条件测试 103
6.1.3 嵌套的if语句 106
6.1.4 else if结构 107
6.2 switch语句 117
6.3 Boolean变量 120
6.4 条件运算符 125
6.5 练习 127
7类 129
7.1 分离接口和实现文件 129
7.2 合成存取方法 135
7.3 使用点运算符访问属性 137
7.4 具有多个参数的方法 139
7.4.1 不带参数名的方法 141
7.4.2 关于分数的操作 141
7.5 局部变量 145
7.5.1 方法的参数 146
7.5.2 static关键字 147
7.6 self关键字 150
7.7 在方法中分配和返回对象 151
7.7.1 扩展类的定义和接口文件 153
7.8 练习 153
8继承 155
8.1 一切从根类开始 155
8.1.1 找出正确的方法 159
8.2 通过继承来扩展:添加新方法 160
8.2.1 Point类和对象创建 164
8.2.2 @class指令 165
8.2.3 具有对象的类 169
8.3 覆写方法 173
8.3.1 选择哪种方法 174
8.4 抽象类 177
8.5 练习 178
9多态、动态类型和动态绑定 181
9.1 多态:相同的名称,不同的类 181
9.2 动态绑定和id类型 184
9.3 编译时和运行时检查 186
9.4 id数据类型与静态类型 187
9.4.1 动态类型的参数和返回类型 188
9.5 有关类的问题 189
9.6 使用@try处理异常 194
9.7 练习 196
10变量和数据类型 199
10.1 对象的初始化 199
10.2 作用域回顾 203
10.2.1 关于属性、存取方法和实例变量 203
10.2.2 全局变量 204
10.2.3 静态变量 206
10.3 枚举数据类型 208
10.4 typedef语句 212
10.5 数据类型转换 213
10.5.1 转换规则 213
10.6 位运算符 215
10.6.1 按位与运算符 216
10.6.2 按位或运算符 217
10.6.3 按位异或运算符 218
10.6.4 一次求反运算符 218
10.6.5 向左移位运算符 220
10.6.6 向右移位运算符 221
10.7 练习 221
11分类和协议 223
11.1 分类 223
11.2 类的扩展 228
11.2.1 关于分类的注意事项 229
11.3 协议和代理 230
11.3.1 代理 233
11.3.2 非正式协议 234
11.4 合成对象 235
11.5 练习 236
12预处理程序 239
12.1 #define语句 239
12.1.1 更高级的定义类型 241
12.2 #import语句 246
12.3 条件编译 247
12.3.1 #ifdef、#endif、#else和#ifndef语句 248
12.3.2 #if和#elif预处理程序语句 250
12.3.3 #undef语句 251
12.4 练习 251
13基本的C语言特性 253
13.1 数组 254
13.1.1 数组元素的初始化 256
13.1.2 字符数组 257
13.1.3 多维数组 258
13.2 函数 260
13.2.1 参数和局部变量 262
13.2.2 函数的返回结果 263
13.2.3 函数、方法和数组 267
13.3 块(Blocks) 268
13.4 结构 272
13.4.1 结构的初始化 275
13.4.2 结构中的结构 276
13.4.3 关于结构的补充细节 278
13.4.4 不要忘记面向对象编程思想 279
13.5 指针 279
13.5.1 指针和结构 283
13.5.2 指针、方法和函数 285
13.5.3 指针和数组 287
13.5.4 指针运算 297
13.5.5 指针和内存地址 299
13.6 它们不是对象 299
13.7 其他语言特性 300
13.7.1 复合字面量 300
13.7.2 goto语句 301
13.7.3 空语句 301
13.7.4 逗号运算符 301
13.7.5 sizeof运算符 302
13.7.6 命令行参数 303
13.8 工作原理 305
13.8.1 事实#1:实例变量存储在结构中 306
13.8.2 事实#2:对象变量实际上是指针 306
13.8.3 事实#3:方法是函数,而消息表达式是函数调用 307
13.8.4 事实#4:id类型是通用指针类型 307
13.9 练习 307
第二部分Foundation框架
14Foundation框架简介 311
14.1 Foundation文档 311
15数字、字符串和集合 315
15.1 数字对象 315
15.2 字符串对象 321
15.2.1 NSLog函数 321
15.2.2 description方法 322
15.2.3 可变对象与不可变对象 323
15.2.4 可变字符串 330
15.3 数组对象 336
15.3.1 制作地址簿 341
15.3.2 数组排序 358
15.4 词典对象 364
15.4.1 枚举词典 366
15.5 集合对象 369
15.5.1 NSIndexSet 373
15.6 练习 375
16使用文件 379
16.1 管理文件和目录:NSFileManager 380
16.1.1 使用NSData类 385
16.1.2 使用目录 386
16.1.3 枚举目录中的内容 389
16.2 使用路径:NSPathUtilities.h 391
16.2.1 常用的路径处理方法 394
16.2.2 复制文件和使用NSProcessInfo类 396
16.3 基本的文件操作:NSFileHandle 400
16.4 NSURL类 405
16.5 NSBundle类 406
16.6 练习 407
17内存管理和自动引用计数 409
17.1 自动垃圾收集 411
17.2 手工管理内存计数 411
17.2.1 对象引用和自动释放池 412
17.3 事件循环和内存分配 414
17.4 手工内存管理规则的总结 416
17.5 自动引用计数(ARC) 417
17.6 强变量 418
17.7 弱变量 419
17.8 @autoreleasepool块 420
17.9 方法名和非ARC编译代码 420
18复制对象 423
18.1 copy和mutableCopy方法 424
18.2 浅复制与深复制 426
18.3 实现<NSCopying>协议 428
18.4 用设值方法和取值方法复制对象 431
18.5 练习 433
19归档 435
19.1 使用XML属性列表进行归档 435
19.2 使用NSKeyedArchiver归档 437
19.3 编码方法和解码方法 439
19.4 使用NSData创建自定义档案 446
19.5 使用归档程序复制对象 450
19.6 练习 451
第三部分Cocoa、Cocoa Touch与iOS的SDK
20Cocoa和Cocoa Touch简介 453
20.1 框架层 453
20.2 Cocoa Touch 454
21编写iOS应用程序 457
21.1 iOS SDK 457
21.2 第一个iPhone应用程序 457
21.2.1 创建新的iPhone应用程序项目 460
21.2.2 输入代码 463
21.2.3 设计界面 466
21.3 iPhone分数计算器 474
21.3.1 启动新的Fraction_Calculator项目 475
21.3.2 定义视图控制器 476
21.3.3 Fraction类 481
21.3.4 处理分数的Calculator类 485
21.3.5 设计UI 486
21.4 小结 487
21.5 练习 488
附录A术语表 489
附录B地址簿示例源代码 501
· · · · · · (
收起)