第1章 踏上新征程
1.1 本书讲什么
1.2 你需要具备的基础
1.3 启程前的准备
1.4 本书主要内容
第2章 Core Data剖析
2.1 Core Data简史
2.2 创建Core Data应用程序
2.3 Core Data概念和术语
2.4 数据模型
2.5 Managed Object
2.6 键-值(Key-Value)编程
2.7 Managed Object上下文
2.8 小结
第3章 完美的开端:添加、显示和删除数据
3.1 建立Xcode项目
3.1.1 添加场景
3.1.2 场景和导引线
3.1.3 Storyboard文档大纲
3.2 应用程序架构
3.3 设计视图控制器界面
3.4 创建HeroListController
3.4.1 创建Connection和Outlets
3.4.2 导航栏按钮
3.4.3 标签栏User Defaults
3.5 设计数据模型
3.5.1 添加一个实体
3.5.2 编辑新实体
3.5.3 为Hero实体添加属性
3.6 声明Fetched Results Controller
3.7 实现Fetched Results Controller
3.8 Fetched Results Controller的Delegate方法
3.9 一切就绪
3.9.1 错误处理
3.9.2 实现Edit和Add
3.9.3 为表格视图数据源和Delegate编写代码
3.9.4 表格视图排序
3.9.5 运行时载入Fetch Request
3.10 跑起来吧
3.11 完成,但还要继续
第4章 隐藏在详情视图中的“怪兽”
4.1 视图实现方案选择
4.2 创建详情视图控制器
4.2.1 接通导引线
4.2.2 HeroDetailController
4.3 详情视图中的挑战
4.4 使用Property列表控制表格结构
4.5 使用Property列表搭建表格结构模型
4.6 通过Property列表定义表格视图
4.7 解析Property列表
4.8 显示详情
4.9 编辑详情
4.10 详情视图的编辑模式
4.11 创建自定义UITableViewCell子类
4.12 保存修改
4.13 专门的输入视图
4.13.1 DatePicker SuperDBEditCell子类
4.13.2 使用DatePicker SuperDBEditCell子类
4.13.3 实现一个选择器
4.14 “怪兽”的终结
第5章 为变化做准备:迁移和版本控制
5.1 关于数据模型
5.1.1 数据模型会被编译
5.1.2 数据模型可以拥有多个版本
5.1.3 创建新版数据模型
5.1.4 当前数据模型版本
5.1.5 数据模型版本标识符
5.2 迁移
5.2.1 轻量VS标准
5.2.2 标准迁移
5.3 为轻量迁移设置应用
5.4 让我们迁移吧
第6章 自定义管理对象
6.1 更新数据模型
6.1.1 添加Age属性
6.1.2 添加“最喜爱颜色”属性
6.1.3 为name属性指定最小长度
6.2 创建Hero类
6.2.1 修改Hero的Header
6.2.2 设置默认值
6.3 校验
6.3.1 单属性校验
6.3.2 nil vs. NULL
6.3.3 多属性校验
6.4 虚拟Accessor
6.5 添加校验反馈
6.6 更新详情视图
6.7 重构SuperDBEditCell
6.7.1 Xcode重构选项
6.7.2 搬移代码
6.7.3 可编辑Property
6.8 创建Color表格视图单元格
6.8.1 自定义颜色编辑器
6.8.2 自定义Color表格视图单元格
6.9 清除选择器
6.10 还有一件事
6.11 前路更多彩
第7章 关系、属性获取和表达式
7.1 扩展你的应用程序:“超能力”和“英雄榜”
7.2 关系
7.2.1 对一关系
7.2.2 对多关系
7.2.3 逆关系
7.2.4 Fetched Properties
7.2.5 在数据模型编辑器中创建关系和Fetched Properties
7.2.6 删除规则
7.3 表达式和融合
7.4 添加“超能力”实体
7.5 创建Power关系
7.6 创建逆关系
7.7 创建olderHeros Fetched Property
7.8 创建youngerHeros Fetched Property
7.9 创建sameSexHeroes Fetched Property
7.10 创建oppositeSexHeroes Fetched Property
7.11 向Hero类添加关系和Fetched Properties
7.12 修改详情视图
7.12.1 重新思考配置
7.12.2 封装和信息隐藏
7.12.3 数据驱动配置
7.12.4 添加“超能力”
7.13 重构详情视图控制器
7.13.1 重命名Configuration类
7.13.2 重构详情控制器
7.13.3 重构Hero实例变量
7.13.4 再抽象一点
7.13.5 新的HeroDetailController
7.14 “超能力”视图控制器
7.15 Fetch Properties
7.16 和Core说再见
第8章 在云端
8.1 使用iCloud进行数据存储
8.2 iCloud基础
8.3 iCloud Backup
8.4 在应用程序中启用iCloud
8.5 键-值数据存储
8.6 文档存储
8.6.1 UIDocument
8.6.2 支持iCloud的UIDocument
8.6.3 NSMetadataQuery
8.7 支持iCloud的Core Data
8.8 升级SuperDB
8.8.1 Entitlements
8.8.2 创建启用iCloud的Provisioning Profile
8.8.3 修改Persistent Store
8.8.4 修改Managed Object上下文
8.8.5 收到DataChanged通知时更新UI
8.8.6 测试数据存储
8.8.7 “脚踏实地”
第9章 使用Game Kit进行蓝牙点对点通信
9.1 Game Center
9.2 点对点连接
9.3 In Game Voice
9.4 本章的应用程序
9.5 网络通信模型
9.5.1 客户端-服务器模型
9.5.2 点对点模型
9.5.3 客户端-服务器与点对点混合
9.6 Game Kit中的Session
9.6.1 创建Session
9.6.2 查找并连接到其他Session
9.6.3 监听其他的Session
9.6.4 向连接点发送数据
9.6.5 信息打包发送
9.6.6 从连接点接收数据
9.6.7 关闭连接
9.7 Peer Picker
9.7.1 创建Peer Picker
9.7.2 处理连接
9.7.3 创建Session
9.8 创建项目
9.8.1 关闭待机计时器
9.8.2 导入Game Kit框架
9.8.3 设计界面
9.8.4 定义应用程序常量
9.8.5 设计棋盘
9.8.6 创建数据包对象
9.8.7 搭建视图控制器头
9.9 内测
9.10 游戏开始
第10章 Map Kit
10.1 本章的应用程序
10.2 概览和术语
10.3 地图视图
10.3.1 地图类型
10.3.2 用户所在位置
10.3.3 坐标区域
10.3.4 设定显示区域
10.3.5 地图视图Deleate
10.4 标注
10.4.1 标注对象
10.4.2 标注视图
10.4.3 添加和移除标注
10.4.4 选中标注
10.4.5 提供带有标注视图的地图视图
10.5 地理编码和反向地理编码
10.6 搭建MapMe应用程序
10.6.1 链接Map Kit和Core Location框架
10.6.2 构建界面
10.6.3 实现视图控制器接口
10.6.4 实现标注对象类
10.6.5 实现MapMe的ViewController
10.7 升级啦,年轻人
第11章 消息:邮件、短信和社交媒体
11.1 本章的应用程序
11.2 MessageUI框架
11.2.1 创建邮件编写视图控制器
11.2.2 填写标题行
11.2.3 填写收件人
11.2.4 设置邮件正文
11.2.5 添加附件
11.2.6 显示邮件编写视图
11.2.7 邮件编写视图控制器的Delegate方法
11.2.8 消息编写视图控制器
11.3 Social框架
11.3.1 SLComposeViewController
11.3.2 SLRequest
11.4 活动视图控制器
11.5 构建MessageImage应用程序
11.5.1 构建用户界面
11.5.2 拍照
11.5.3 调用照相机
11.5.4 选择消息发送器
11.6 寄往:下一章
第12章 媒体库访问和播放
12.1 MediaPlayer框架
12.1.1 媒体项
12.1.2 媒体项集合
12.1.3 媒体查询和媒体属性Predicate
12.1.4 媒体选择控制器
12.1.5 音乐播放控制器
12.2 简单的音乐播放器
12.2.1 构建SimplePlayer应用程序
12.2.2 构造用户界面
12.2.3 声明Outlet和Action
12.3 MPMoviePlayerController
12.4 MPMediaPlayer
12.5 AVFoundation
12.6 AVMediaPlayer
12.7 小心!前方有洪水
第13章 加把锁:iOS安全
13.1 安全性考量
13.2 安全性技术
13.2.1 加密
13.2.2 散列
13.2.3 证书和签名
13.2.4 身份
13.3 iOS安全性
13.3.1 随机Keychain
13.3.2 证书、密钥和受信服务
13.4 Keychain Viewer
13.4.1 创建Certificate Authority
13.4.2 创建Keychain应用
13.5 安全不打烊
第14章 保持界面响应
14.1 探索并发问题
14.2 创建Stalled应用程序
14.2.1 设计界面
14.2.2 实现Stalled视图控制器
14.3 Timer
14.3.1 创建Timer
14.3.2 停止Timer
14.3.3 Timer的局限性
14.4 使用Timer修改Stalled应用程序
14.4.1 创建Batch对象
14.4.2 修改nib
14.4.3 修改视图控制器头文件
14.4.4 修改视图控制器的实现文件
14.5 操作队列和并发
14.5.1 线程
14.5.2 操作
14.5.3 操作队列
14.6 使用操作队列优化Stalled应用程序
14.6.1 创建SquareRootApplication
14.6.2 自定义ProgressCell
14.6.3 调整用户界面
14.6.4 修改ViewController.h
14.6.5 修改ViewController.m
14.7 排队站好
第15章 单元测试、调试和相关工具
15.1 单元测试
15.2 调试
15.2.1 断点
15.2.2 Debug Navigator
15.2.3 Debug Area
15.2.4 尝试Debug Control
15.2.5 Breakpoint Navigator和Symbolic断点
15.2.6 条件断点
15.2.7 断点行为
15.2.8 静态分析
15.2.9 有关调试的补充
15.3 使用Instruments进行性能分析
15.4 胜利的终点线
第16章 路在脚下
16.1 逃离困境
16.2 苹果提供的文档
16.3 邮件列表
16.4 论坛
16.5 网站
16.6 博客
16.7 如果一切都失败了……
16.8 再见
· · · · · · (
收起)