第1章 应用开发 1
1.1创建终端应用 1
1.2输出到控制台 3
1.3创建新的自定义类 5
1.4编写属性访问器 7
1.5使用@synthesize编写属性访问器 10
1.6向自定义类中添加类方法 12
1.7向自定义类中添加实例方法 14
1.8使用类别对类进行扩展 15
1.9从终端创建基于窗口的Mac应用 17
1.10向Mac应用添加用户控件 20
1.11从Xcode创建基于窗口的Mac应用 23
1.12从Xcode创建iOS应用 25
1.13使用目标-动作向iO5应用添加用户控件 29
1.14使用委托向iOS应用添加用户控件 33
第2章 使用字符串与数字 37
2.1创建字符串对象 37
2.2在Mac上从文件读取字符串 39
2.3在iOS上从文件读取字符串 41
2.4在Mac上将字符串写到文件中 43
2.5在iOS上将字符串写到文件中 45
2.6比较字符串 48
2.7操纵字符串 50
2.8搜索字符串 53
2.9本地化字符串 54
2.10将数字转换为字符串 56
2.11将字符串转换为数字 58
2.12格式化数字 59
第3章 使用对象集合 61
3.1创建数组 62
3.2引用数组中的对象 63
3.3获取数组中元素的数量 65
3.4遍历数组 66
3.5排序数组 68
3.6查询数组 72
3.7操纵数组内容 75
3.8将数组保存到文件系统中 78
3.9从文件系统读取数组 80
3.10创建字典 81
3.11引用数组中的对象 83
3.12获取字典中元素的数量 84
3.13遍历字典 85
3.14操纵字典内容 87
3.15将字典保存到文件系统中 89
3.16从文件系统读取字典 90
3.17创建集合 92
3.18获取集合中元素的数量 93
3.19比较集合 94
3.20遍历集合 96
3.21操纵集合内容 97
第4章 文件系统 101
4.1引用并使用文件管理器 101
4.2获得指向Mac系统目录的引用 103
4.3获得指向关键iOS目录的引用 105
4.4获取文件属性 107
4.5获得目录下的文件与子目录列表 109
4.6管理目录 111
4.7管理文件 114
4.8查看文件状态 117
4.9修改文件属性 119
4.10使用NSFileManager委托 121
4.11使用NSData处理数据 127
4.12使用NSCache缓存内容 131
第5章 使用日期、时间与定时器 137
5.1创建表示今天的日期对象 137
5.2通过Component创建自定义日期 138
5.3比较两个日期 140
5.4将字符串转换为日期 143
5.5格式化日期以便显示 144
5.6加减日期 146
5.7使用定时器调度并重复执行任务 147
第6章 异步处理 151
6.1在新线程中执行处理 151
6.2主线程与后台线程之间的通信 156
6.3使用NSLock锁定线程 163
6.4使用@synchronized锁定线程 167
6.5使用Grand Central Dispatch(GCD)进行异步处理 171
6.6在GCD中使用顺序队列 177
6.7使用NSOperationQueue实现异步处理 182
第7章 使用Web服务 187
7.1下载文件 187
7.2通过XML使用Web服务 189
7.3通过JSON使用Web服务 195
7.4异步地使用Web服务 198
第8章 内存管理 201
8.1理解内存管理 201
8.2创建不使用ARC的应用 203
8.3使用引用计数管理内存 205
8.4为自定义类添加内存管理 207
8.5使用autorelease消息 210
8.6为Mac应用启用垃圾收集 215
第9章 使用对象图 217
9.1创建对象图 218
9.2使用键-值编码 229
9.3在对象图中使用键路径 236
9.4使用键路径聚合信息 241
9.5实现观察者模式 247
9.6探查类与对象 252
9.7归档对象图 257
第10章Core Data 267
10.1向应用添加Core Data支持 267
10.2添加实体描述 274
10.3向应用添加托管对象 276
10.4向Core Data添加托管对象 280
10.5从数据存储中检索对象 285
10.6将变更发回数据存储 290
10.7使用Core Data管理一对一关联关系 296
10.8使用Core Data管理一对多关联关系 304
10.9管理数据存储的版本 315
第11章Objective-C:超越Mac与iOS 325
11.1在Windows上安装GNUstep 325
11.2 Windows上的Objective-C程序Hello World 327
11.3下载Objective-J以进行Web应用开发 330
11.4编写Objective-J应用Hello World 331
11.5向Objective-J应用添加按钮 336