理论篇 3
第1章 Objective-C概述 3
1.1 Objective-C的历史 4
1.2 Objective-C的特点 4
1.3 Xcode简介 5
1.4 构建Hello Objective-C程序 5
本章小结 8
本章练习 8
第2章 C语言基础知识 9
2.1 数据类型 10
2.2 常量和变量 10
2.2.1 标识符 10
2.2.2 分隔符 10
2.2.3 常量 11
2.2.4 变量 11
2.3 指针 12
2.3.1 指针的定义 12
2.3.2 指针的运算 13
2.4 运算符 13
2.4.1 算术运算符 13
2.4.2 比较运算符 14
2.4.3 逻辑运算符 15
2.4.4 赋值运算符 16
2.4.5 条件运算符 16
2.5 流程控制 17
2.5.1 选择结构 17
2.5.2 循环结构 21
2.6 Objective-C的注释 25
本章小结 26
本章练习 26
第3章 类、对象与方法 29
3.1 类与对象 30
3.1.1 对象的特征与方法 30
3.1.2 类的特征与方法 30
3.2 类的声明与实现 30
3.2.1 创建类 31
3.2.2 类的声明部分 33
3.2.3 类的实现部分 34
3.3 Objective-C中的方法 34
3.4 对象的创建与使用 35
3.4.1 创建对象 35
3.4.2 对象的使用 35
3.5 对象的初始化 36
3.5.1 自定义初始化方法 36
3.5.2 便利初始化函数 36
3.5.3 便利构造器 37
本章小结 37
本章练习 38
第4章 属性 41
4.1 设置器与访问器 42
4.1.1 实例变量的作用域 42
4.1.2 实例变量的存取方法 44
4.2 属性的声明与实现 46
4.3 属性的有关语法 47
4.3.1 点语法 47
4.3.2 存取方法名称 47
4.3.3 可读写性 48
4.3.4 setter相关语义 48
4.3.5 原子操作 49
本章小结 49
本章练习 49
第5章 面向对象编程的三大特征 51
5.1 封装 52
5.2 继承 52
5.2.1 使用继承的原因 52
5.2.2 方法的重写 56
5.2.3 super关键字 57
5.3 多态 57
本章小结 60
本章练习 60
第6章 Foundation框架 61
6.1 NSObject类常用处理方法 62
6.2 字符串常用处理方法 63
6.2.1 字符串 63
6.2.2 可变字符串 65
6.3 数组常用处理方法 66
6.3.1 数组 66
6.3.2 可变数组 67
6.3.3 数组的遍历 68
6.4 字典常用处理方法 69
6.4.1 字典 69
6.4.2 可变字典 70
6.4.3 字典的遍历 70
6.5 日期常用处理方法 71
6.5.1 unix时间戳 71
6.5.2 日期 71
6.5.3 日期的格式化 72
6.6 数字对象、数值对象与空对象 73
6.6.1 数字对象 74
6.6.2 数值对象 74
6.6.3 空对象 75
本章小结 75
本章练习 75
第7章 内存管理 77
7.1 引用计数 78
7.1.1 引用计数的原理 78
7.1.2 引用计数的方法 78
7.2 Cocoa的内存管理规则 79
7.3 自动释放 80
7.3.1 自动释放池的创建与销毁 80
7.3.2 自动释放池的注意事项 81
7.4 ARC 81
7.4.1 ARC引入的新规则 82
7.4.2 ARC引入的新特性 82
7.4.3 非ARC项目转换为ARC项目 82
本章小结 83
本章练习 83
第8章 类别和协议 85
8.1 类别 86
8.1.1 为什么使用类别 86
8.1.2 类别的创建 87
8.1.3 类别的声明 88
8.1.4 类别的实现 89
8.1.5 类别的功能及局限性 89
8.2 协议 92
8.2.1 非正式协议 92
8.2.2 正式协议 92
本章小结 95
本章练习 95
第9章 设计模式 97
9.1 单例模式 98
9.1.1 单例模式的实现思路 98
9.1.2 创建全局实例 98
9.1.3 单例模式的创建 99
9.1.4 单例模式的内存管理 99
9.2 委托模式 101
本章小结 104
本章练习 104
第10章 代码块 105
10.1 代码块的声明 106
10.2 代码块的使用 107
10.3 代码块的功能 108
10.3.1 代码块作为参数 108
10.3.2 使用代码块实现回调 110
10.4 在代码块中使用全局变量和局部变量 112
本章小结 114
本章练习 114
第11章 文件管理与对象归档 115
11.1 沙盒 116
11.1.1 沙盒的存储位置及目录 116
11.1.2 获取沙盒文件路径 116
11.2 NSFileManager 118
11.2.1 使用NSFileManager创建和读取文件 118
11.2.2 使用NSFileManager剪切、赋值以及删除文件 119
11.3 属性列表 120
11.3.1 使用属性列表读写数据 121
11.3.2 NSUserDefaults 121
11.4 对象归档 123
11.4.1 简单对象归档 123
11.4.2 自定义对象归档 123
本章小结 124
本章练习 124
第12章 KVC、KVO与通知 125
12.1 KVC 126
12.1.1 KVC的基本用法 126
12.1.2 在数组中使用KVC 129
12.1.3 KVC的缺点 130
12.2 KVO 131
12.3 通知 135
12.3.1 通知中心 135
12.3.2 系统通知 135
12.3.3 自定义通知 136
12.3.4 通知与KVO的区别 139
12.4 谓词 139
本章小结 140
本章练习 140
实践篇 143
实践1 类、对象与方法 143
实践指导 143
实践1.1 143
实践1.2 145
实践1.3 147
拓展练习 151
实践2 属性 152
实践指导 152
实践2.1 152
实践2.2 155
拓展练习 157
实践3 面向对象的三大特征 158
实践指导 158
实践3.1 158
实践3.2 163
拓展练习 167
实践4 类别和协议 168
实践指导 168
实践4.1 168
实践4.2 169
拓展练习 172
实践5 文件管理与对象归档 173
实践指导 173
实践5.1 173
实践5.2 174
实践5.3 176
实践5.4 178
实践5.5 179
拓展练习 181
实践6 单例模式和委托模式 182
实践指导 182
实践6.1 182
实践6.2 184
拓展练习 187
实践7 代码块 188
实践指导 188
实践7.1 188
实践7.2 190
拓展练习 193
实践8 KVC、KVO与通知 194
实践指导 194
实践8.1 194
实践8.2 196
实践8.3 199
实践8.4 202
拓展练习 205