第1章 Objective-C入门 1
1.1 Objective-C概述 1
1.2 搭建开发环境 2
1.2.1 开发环境要求 2
1.2.2 系统环境搭建 2
1.2.3 Xcode开发工具搭建 3
1.3 开发第一个Objective-C程序 4
1.3.1 使用Xcode开发Objective-C程序 4
1.3.2 Objective-C程序代码分析 7
1.3.3 Objective-C源码、编译代码和可执行文件 8
1.4 帮助文档的使用 9
1.4.1 帮助文档的下载安装 9
1.4.2 帮助文档的使用 9
1.5 本章小结 12
1.6 本章习题 12
第2章 面向对象编程(上) 13
2.1 面向对象概述 13
2.2 类和对象 14
2.2.1 类和对象之间的关系 14
2.2.2 类的设计 15
2.2.3 类的定义 16
2.2.4 使用Xcode创建一个类 17
2.2.5 类的对象的创建 22
2.2.6 访问对象的属性 24
2.3 方法 25
2.3.1 方法的声明实现和调用 25
2.3.2 方法实现中直接访问属性 27
2.3.3 对象作为方法的参数 28
2.3.4 对象作为方法的返回值 31
2.4 self的使用 32
2.4.1 在对象方法中使用self 32
2.4.2 在类方法中使用self 35
2.5 匿名对象 37
2.6 异常 37
2.7 阶段案例——猜拳游戏 38
2.8 本章小结 43
2.9 本章习题 44
第3章 面向对象编程(下) 46
3.1 面向对象的三大特征 46
3.2 封装 47
3.2.1 setter的封装 47
3.2.2 getter的封装 49
3.3 static关键字 50
3.4 继承 51
3.4.1 继承的简单使用 51
3.4.2 继承的特点 53
3.4.3 方法的重写 56
3.4.4 super关键字 57
3.5 访问修饰符 59
3.6 里氏替换原则 59
3.7 多态 60
3.8 description方法 62
3.9 阶段案例——计算器 63
3.10 本章小结 67
3.11 本章习题 67
第4章 Objective-C特有语法 69
4.1 点语法 69
4.2 @property 72
4.3 @synthesize 73
4.4 @property增强 75
4.5 静态类型与动态类型 76
4.6 动态类型检测 78
4.7 构造方法 80
4.7.1 构造方法概述 80
4.7.2 重写init构造方法 81
4.7.3 自定义构造方法 82
4.8 阶段案例——购票系统 84
4.9 本章小结 92
4.10 本章习题 93
第5章 内存管理 99
5.1 内存管理概述 99
5.1.1 引用计数器 99
5.1.2 第一个MRC程序 101
5.2 单个对象的内存管理 105
5.3 多个对象的内存管理(setter方法内存管理) 106
5.3.1 setter方法内存管理(一) 109
5.3.2 setter方法内存管理(二) 111
5.3.3 setter方法内存管理(三) 115
5.4 @property参数概述 117
5.4.1 @property参数之atomic与nonatomic 118
5.4.2 @property参数之retain与assign 118
5.4.3 @property参数之readwrite与readonly 121
5.4.4 @property参数之getter与setter 121
5.5 自动释放池 126
5.6 阶段案例——微博(MRC) 127
5.7 本章小结 133
5.8 本章习题 133
第6章 ARC机制 138
6.1 ARC机制概述 138
6.2 ARC机制下单个对象的内存管理 139
6.3 @property中的strong和weak 140
6.4 ARC机制下的循环引用 141
6.5 ARC与MRC的相互兼容 145
6.6 阶段案例——微博(ARC) 147
6.7 本章小结 152
6.8 本章习题 153
第7章 分类和延展 156
7.1 分类概述 156
7.1.1 分类的简单使用 156
7.1.2 分类的注意细节 159
7.2 非正式协议 161
7.3 延展 163
7.4 本章小结 165
7.5 本章习题 165
第8章 block 169
8.1 block概述 169
8.1.1 block语法 169
8.1.2 block的基本使用 170
8.1.3 使用typedef简化复杂的block定义 172
8.2 block内部访问外部变量 173
8.3 block作为函数的参数 174
8.4 block作为函数的返回值 176
8.5 本章小结 177
8.6 本章习题 177
第9章 协议 182
9.1 协议概述 182
9.1.1 协议的基本使用 182
9.1.2 @required和@optional 185
9.2 协议之间的继承 185
9.3 协议的类型限制 186
9.4 阶段案例——给男生找女友 187
9.5 本章小结 190
9.6 本章习题 190
第10章 Foundation框架 194
10.1 NSString的基本使用 194
10.1.1 NSString的创建 194
10.1.2 NSString最常见的操作 195
10.2 NSString的其他操作 198
10.2.1 字符串的读写 198
10.2.2 字符串的比较 203
10.2.3 字符串的开始和结束判断 204
10.2.4 字符串的搜索 205
10.2.5 字符串的截取 207
10.2.6 字符串的替换 208
10.2.7 字符串的类型转换 209
10.3 NSMutableString 210
10.3.1 NSMutableString概述 210
10.3.2 NSMutableString的使用 210
10.4 NSArray 212
10.4.1 NSArray数组的创建 212
10.4.2 NSArray数组的基本使用 213
10.4.3 NSArray数组的遍历 215
10.5 NSMutableArray的使用 217
10.6 NSDictionany 219
10.6.1 NSDictionary概述 219
10.6.2 NSDictionary字典的创建 219
10.6.3 NsDictionary的使用 220
10.6.4 NSDictionary字典的遍历 221
10.7 NSMutableDictionary的使用 222
10.8 NSFileManager 224
10.8.1 使用NSFileManager实现判断操作 224
10.8.2 使用NSFileManager获取信息 226
10.8.3 使用NSFileManager创建文件或文件夹 229
10.9 Foudation框架的结构体 232
10.9.1 CGPoint 232
10.9.2 CGSize 233
10.9.3 CGRect 234
10.10 NSValue 235
10.11 日期处理 236
10.11.1 字符串与时间的相互转换 236
10.11.2 日期计算 237
10.11.3 得到日期的各个部分 239
10.12 阶段案例——通讯录 240
10.13 本章小结 248
10.14 本章习题 248