第1章 Mac操作系统和开发环境 1
1.1 Mac操作系统简介 1
1.2 Windows操作习惯的改变 2
1.3 Mac系统配置 3
1.4 使用Finder 3
1.5 Dock启动菜单 4
1.6 使用Terminal终端 5
1.7 使用App Store 5
1.8 Mac常用快捷键 6
1.9 下载并安装Xcode 9
第2章 Xcode的使用 11
2.1 Xcode简介 11
2.2 使用Xcode创建项目 11
2.3 Xcode界面纵览 14
2.4 使用Xcode中的Interface Builder构建界面 15
2.5 Xcode快捷键 16
2.6 Organizer组织中心 17
第3章 Hello World Objective-C 18
3.1 使用Xcode编辑、编译和运行Hello World 18
3.2 使用命令行编辑、编译并运行Hello World 21
3.3 Objective-C 中的注释 22
3.4 使用NSLog输出变量 22
3.5 NSLog的格式化输出 23
第4章 Objective-C中的面向对象 25
4.1 对象和类简介 25
4.2 Objective-C中类的定义 25
4.3 实例变量、实例方法、类方法 26
4.4 类的实例化及方法的调用 27
4.5 类的初始化 29
4.6 属性 30
第5章 Objective-C中的数据类型 32
5.1 整型 32
5.2 浮点类型 33
5.3 字符型(char) 34
5.4 布尔类型 35
5.5 整型修饰符(short,long,signed,unsigned) 36
5.6 特殊类型(id) 36
第6章 Objective-C中的运算符 38
6.1 赋值运算 38
6.2 算术运算 39
6.3 自增自减 40
6.4 关系运算 41
6.5 逻辑运算 42
6.6 位运算 43
第7章 Objective-C流程控制、数据结构 44
7.1 选择(if else、switch、三元运算) 44
7.2 循环(for、while、do while、break、continue) 46
7.3 常用的数据结构:数组、栈 49
第8章 Objective-C分类和协议 52
8.1 分类的概念 52
8.2 分类的用法 52
8.3 协议的概念 56
8.4 协议的用法 56
第9章 Objective-C继承和多态 60
9.1 继承和组合 60
9.2 OCP设计原则及多态 64
第10章 C语言特性在Objective-C中的应用 70
10.1 预处理 70
10.2 数组 72
10.3 指针 73
10.4 结构体 74
第11章 Objective-C内存管理 76
11.1 对象的引用计数 76
11.2 Autorelease Pool 77
11.3 属性的内存管理 78
11.4 内存的自动引用计数(ARC) 79
11.5 内存管理的其他注意事项 81
第12章 NSNumber和NSString 83
12.1 NSNumber 83
12.2 NSString(字符串) 87
12.3 NSMutableString(可变字符串) 89
第13章 Foundation中的集合框架 91
13.1 数组NSArray和NSMutableArray 91
13.2 集合NSSet和NSMutableSet 93
13.3 字典NSDictionary和NSMutableDictionary 95
第14章 Foundation框架中的文件和目录 97
14.1 使用NSFileManager管理文件 97
14.2 使用NSFileManager管理目录 102
14.3 使用NSFileHandler读写文件 103
第15章 Objective-C中的对象复制 105
15.1 概述 105
15.2 对象的浅复制和深复制 107
15.3 NSCopying和NSMutableCopying协议 108
第16章 Objective-C中的文件归档 110
16.1 概述 110
16.2 使用属性列表(plist)保存数据 110
16.3 使用NSKeyedArchiver归档 112
16.4 归档自定义类型 113
16.5 利用归档实现深复制 114
第17章 iOS编程中常用的设计模式 115
17.1 MVC 115
17.2 Target-Action 119
17.3 代理 120
第18章 iOS用户界面 122
18.1 UIResponder 123
18.2 UIView 125
18.2.1 UIView的创建 125
18.2.2 UIView的核心属性 126
18.3 UILabel 128
18.4 UITextView 130
18.5 UIButton 132
18.6 UITextField 133
18.7 UISwitch 134
18.8 UISlider 135
18.9 UISegmentedControl 137
18.10 UIProgressView 138
18.11 UIActivityIndicatorView 139
18.12 UIAlertView 140
18.13 UIActionSheet 143
18.14 UIImageView 145
18.15 UIScrollView 146
18.16 UIWebView 147
18.17 UIDatePicker 151
18.18 UIPickerView 153
第19章 iOS控制器 155
19.1 UIViewController 155
19.2 UITabBarController 156
19.3 UINavigationController 161
19.4 UISplitViewController 164
19.5 UIPopoverController 166
19.6 UITableViewController 167
19.6.1 UITableViewController基本用法 168
19.6.2 分区表 171
19.6.3 自定义表格单元格 173
19.6.4 编辑表格数据 175
第20章 图形图像和动画 177
20.1 字体和颜色 177
20.2 绘制文本 181
20.3 绘制图片 182
20.4 画线 183
20.5 绘制矩形 185
20.6 移动动画 186
20.7 缩放动画 188
20.8 旋转动画 189
第21章 iOS多媒体 191
21.1 为多媒体开发做准备 191
21.2 使用AVAudioPlayer播放音乐 192
21.3 使用AVAudioPlayerDelegate处理播放中断及续播 194
21.4 使用AVAudioRecorder实现录音 196
21.5 使用AVAudioRecorderDelegate处理录音中断和续录 198
21.6 使用MPMoviePlayerController播放视频 201
21.7 捕获视频缩略图 202
21.8 使用MPMediaPickerController 选择系统音乐 204
21.9 使用UIImagePickerController进行拍照和录像 205
第22章 iOS SQLite数据库 209
22.1 SQLite简介 209
22.2 在命令行使用SQLite 209
22.3 使用SQLite实现表的增、删、查、改 211
22.4 SQLite和UITableView结合使用 217
第23章 iOS Core Data编程 221
23.1 Core Data简介 221
23.2 使用Xcode模板创建Core Data 项目 223
23.3 使用Core Data实现数据的增、删、查、改 226
23.4 Core Data数据在UITableView中展现 230
第24章 iOS网络编程 234
24.1 检测网络状态 234
24.2 使用NSURLConnection从网络获取数据 236
24.3 使用NSMutableURLRequest向服务器发送数据 237
24.4 JSON数据解析 239
24.5 XML数据解析 242
24.6 使用开源框架ASIHttpRequest实现网络编程 245
第25章 iOS多线程 247
25.1 NSThread 247
25.2 Block基础 248
25.2.1 Block的声明与调用 248
25.2.2 有返回值和参数的Block 249
25.3 Grand Central Dispatch(GCD) 249
25.4 操作对象(Operation Object) 251
第26章 iOS GPS定位应用 255
26.1 为项目添加必要的框架 255
26.2 使用MKMapView显示地图 256
26.2.1 使用MapView组件直接显示地图 256
26.2.2 使用代码显示地图 257
26.3 使用MKMapView的代理MKMapViewDelegate 258
26.4 使用CLLocationManager获得设备当前经纬度信息 260
26.5 在地图上标注位置 261
26.6 使用CLGeocoder将位置描述转换为经纬度信息 262
26.7 使用CLGeocoder将经纬度信息转换为位置描述 264
26.8 使用Google Place API查询周边位置信息 265
第27章 iOS手势处理 267
27.1 点击手势处理UITapGestureRecognizer 267
27.2 捏合手势处理UIPinchGestureRecognizer 269
27.3 旋转手势处理UIRotationGestureRecognizer 270
27.4 滑动手势处理UISwipeGestureRecognizer 271
27.5 拖动手势处理UIPanGestureRecognizer 273
27.6 长按手势处理UILongPressGestureRecognizer 274
第28章 iOS传感器编程 276
28.1 传感器编程的准备工作 277
28.2 加速度传感器(Accelerometer) 278
28.3 陀螺仪传感器(Gyroscope) 280
28.4 磁力传感器(Magnetometer) 282
28.5 设备移动传感器(Device motion) 284
28.6 通过加速度传感器控制小球运动 285
第29章 AddressBook联系人管理 287
29.1 概述 287
29.2 读取所有联系人 289
29.3 添加联系人 293
第30章 在App Store掘金 296
30.1 注册开发者账号 296
30.2 申请成为开发者 298
30.3 证书申请 302
30.4 真机调试 312
30.5 应用提交 313
第31章 iOS项目实战——新浪微博客户端 319
31.1 项目准备工作 319
31.2 搭建项目基础框架 323
31.3 项目功能概述 327
31.4 项目界面结构 332
31.5 获得最新微博信息 335
31.6 发布微博 340
31.7 获得微博详细信息 342
31.8 获得微博评论和转发 344
31.9 发表评论 351
31.10 转发微博 353
31.11 收藏微博 355