iPhone开发秘籍 (第2版)
作者:[美] Erica Sadun
分类:文学
ISBN:9787115240019
出版时间:2010-11
出版社:人民邮电出版社
标签: IPhone iOS Objective-C 编程 程序设计 iOS Development 开发
章节目录
第1章 iPhone SDK简介 1 1.1 iPhone开发人员计划 1 1.1.1 在线开发人员计划 1 1.1.2 标准开发人员计划 2 1.1.3 企业开发人员计划 2 1.1.4 大学开发人员计划 2 1.1.5 注册 2 1.2 开始 2 1.2.1 下载SDK 2 1.2.2 开发设备 3 1.2.3 模拟器的限制 4 1.2.4 Tethering 4 1.3 理解型号差异 5 1.3.1 摄像头 5 1.3.2 扬声器和麦克风 5 1.3.3 手机 6 1.3.4 Core Location的差异 6 1.3.5 振动支持和接近传感器 6 1.3.6 处理器速度 6 1.3.7 OpenGL ES 7 1.4 平台限制 7 1.4.1 存储限制 7 1.4.2 数据访问限制 7 1.4.3 内存限制 7 1.4.4 交互限制 8 1.4.5 电量限制 8 1.4.6 应用程序限制 8 1.4.7 用户行为限制 9 1.5 SDK限制 9 1.6 使用开发人员门户 9 1.6.1 建立团队 10 1.6.2 请求证书 10 1.6.3 注册设备 11 1.6.4 注册应用程序标识符 11 1.6.5 设置 12 1.7 组建iPhone项目 12 1.7.1 iPhone应用程序的主干 13 1.7.2 main.m 14 1.7.3 应用程序委托 15 1.7.4 视图控制器 16 1.7.5 关于本书示例代码的说明 16 1.8 iPhone应用程序组件 17 1.8.1 应用程序文件夹层次结构 17 1.8.2 可执行文件 17 1.8.3 Info.plist文件 17 1.8.4 图标和默认图像 19 1.8.5 NIB文件 20 1.8.6 应用程序束中不存在的文件 20 1.8.7 IPA归档 20 1.8.8 沙盒 20 1.9 编程范例 21 1.9.1 面向对象编程 21 1.9.2 模型—视图—控制器 22 1.10 小结 27 第2章 构建第一个项目 28 2.1 创建新项目 28 2.2 用模板构建Hello World应用程序 29 2.2.1 创建新项目 29 2.2.2 Project窗口 30 2.2.3 Detail窗格 31 2.2.4 编辑器窗口 32 2.2.5 查看项目 32 2.2.6 打开视图控制器.xib 33 2.2.7 编辑视图 34 2.2.8 运行应用程序 34 2.3 使用模拟器 35 2.4 极简单的Hello World 36 2.4.1 浏览SDK API 38 2.4.2 将Interface Builder文件转换成Objective-C代码 39 2.5 使用调试器 41 2.5.1 设置断点 41 2.5.2 打开调试器 41 2.5.3 运行程序 41 2.5.4 查看标签 42 2.5.5 设置另一个断点 42 2.5.6 使用文本消息 43 2.5.7 移动Clear Log按钮 43 2.5.8 启用Zombie 44 2.6 内存管理 45 2.6.1 泄漏 45 2.6.2 缓存 45 2.7 秘诀:使用Instruments检测内存泄漏 46 2.8 秘诀:使用Instruments监视缓存对象的内存分配 48 2.9 使用Clang静态分析器 50 2.10 针对iPhone进行构建 51 2.10.1 安装开发配置 51 2.10.2 编辑应用程序标识符 51 2.10.3 设置Code Signing Identity 52 2.10.4 编译和运行Hello World应用程序 53 2.10.5 对编译后的应用程序签名 53 2.11 从Xcode到iPhone:Organizer Interface 54 2.11.1 Projects and Sources列表 54 2.11.2 Devices列表 55 2.11.3 iPhone Development Tools列表 55 2.11.4 Summary选项卡 55 2.11.5 Console选项卡 56 2.11.6 Crash Logs选项卡 56 2.11.7 Screenshot选项卡 57 2.12 使用编译器指令 57 2.12.1 获得特定于iPhone的定义 58 2.12.2 运行时检查 58 2.12.3 记忆标记 59 2.12.4 折叠方法 60 2.13 针对发布进行构建 60 2.14 清除构建 61 2.14.1 针对App Store进行编译 62 2.14.2 调试App Store上传 63 2.15 针对临时发布进行构建 64 2.15.1 注册设备 64 2.15.2 构建临时配置 64 2.15.3 在项目中添加授权文件 64 2.15.4 在设置中添加授权文件 64 2.15.5 构建临时应用程序 65 2.15.6 为临时发布添加图片 65 2.16 定制Xcode标识 66 2.17 创建自定义Xcode模板 66 2.17.1 覆盖com.yourcompany 67 2.17.2 构建其他模板 67 2.18 并排查看代码 68 2.19 小结 69 第3章 Objective-C训练营 70 3.1 Objective-C编程语言 70 3.2 类与对象 70 3.2.1 创建对象 72 3.2.2 内存分配 72 3.2.3 释放内存 73 3.3 方法、消息和选择器 73 3.3.1 动态类型检查 74 3.3.2 继承方法 75 3.3.3 声明方法 76 3.3.4 实现方法 76 3.3.5 类方法 78 3.3.6 快速枚举 78 3.4 类层次结构 79 3.5 日志信息 79 3.6 属性 81 3.6.1 点表示法 81 3.6.2 属性与内存管理 81 3.6.3 创建属性 82 3.6.4 创建自定义的取值方法和赋值方法 83 3.6.5 属性的特性 84 3.7 简单的内存管理 85 3.7.1 创建对象 85 3.7.2 创建自动释放的对象 86 3.7.3 自动释放对象的生命周期 87 3.7.4 保留自动释放的对象 87 3.7.5 已保留属性 87 3.7.6 高保留计数 89 3.7.7 创建对象的其他方式 90 3.7.8 释放对象 91 3.8 创建单例 93 3.9 类别(扩展类) 93 3.10 协议 94 3.10.1 定义协议 95 3.10.2 合并协议 95 3.10.3 增加回调 95 3.10.4 声明可选回调 96 3.10.5 实现可选回调 96 3.10.6 符合协议 97 3.11 Foundation类 97 3.11.1 字符串 98 3.11.2 数字与日期 101 3.11.3 集合 103 3.12 补充内容:消息转发 107 3.12.1 实现消息转发 108 3.12.2 使用转发消息 109 3.12.3 思路整理 109 3.12.4 超级简单的转发 110 3.13 小结 110 第4章 设计界面 111 4.1 UIView和UIWindow 111 4.1.1 显示数据的视图 111 4.1.2 做出选择的视图 112 4.1.3 控件 112 4.1.4 表格和拾取器 113 4.1.5 栏 113 4.1.6 进度与活动 114 4.2 UIViewController 114 4.2.1 UIViewController 114 4.2.2 UINavigationController 115 4.2.3 UITabBarController 115 4.2.4 表格控制器 115 4.2.5 地址簿控制器 116 4.2.6 UIImagePickerController 116 4.2.7 邮件撰写 116 4.2.8 GKPeerPickerController 116 4.2.9 Media Player控制器 117 4.3 视图设计几何学 117 4.3.1 状态栏 117 4.3.2 导航栏、工具栏和选项卡栏 118 4.3.3 键盘和拾取器 119 4.3.4 文本字段 120 4.3.5 UIScreen类 120 4.4 构建界面 120 4.5 实战演练:使用IB构建温度单位转换器 121 4.5.1 新建项目 121 4.5.2 添加媒体 121 4.5.3 Interface Builder 121 4.5.4 编辑导航栏 122 4.5.5 替换主视图 123 4.5.6 启用仿真元素 123 4.5.7 创建图像背景 123 4.5.8 添加标签和视图 123 4.5.9 测试界面 124 4.5.10 添加出口和动作 124 4.5.11 检查新类头 125 4.5.12 添加连接 126 4.5.13 获取紫色 126 4.5.14 定义转换方法 127 4.5.15 运行应用程序 127 4.6 实战演练:手动构建温度单位转换器界面 127 4.7 实战演练:创建混合转换器 130 4.7.1 清理基本模板 131 4.7.2 通过.xib添加新视图控制器类 131 4.7.3 设计界面 131 4.7.4 编辑视图控制器实现 132 4.7.5 编辑main.m 132 4.7.6 运行应用程序 133 4.8 实战演练:直接从代码加载.xib文件 133 4.8.1 清理.xib 134 4.8.2 更新loadView 134 4.9 针对旋转进行设计 134 4.10 启用旋转 135 4.11 自动调整大小 136 4.11.1 自动调整大小示例 136 4.11.2 评估自动调整大小选项 138 4.12 移动视图 138 4.13 交换视图 141 4.14 补充内容:6个有用的Interface Builder技巧 142 4.15 小结 143 第5章 使用视图控制器 144 5.1 使用导航控制器开发 144 5.1.1 设置导航控制器 144 5.1.2 推入和弹出视图控制器 145 5.1.3 导航项类 145 5.1.4 模态演示 146 5.2 实用工具函数 146 5.3 秘诀:构建一个简单的双项菜单 147 5.4 秘诀:添加一个分段控件 149 5.5 秘诀:在视图控制器之间导航 150 5.6 秘诀:使用创意弹出选项 152 5.6.1 加载一个视图控制器数组 152 5.6.2 推入临时视图 152 5.7 秘诀:演示一个自定义模态信息视图 153 5.8 秘诀:选项卡栏 155 5.9 秘诀:记住选项卡状态 157 5.10 补充点:Interface Builder和选项卡栏控制器 160 5.11 小结 161 第6章 组合视图和动画 162 6.1 视图层次结构 162 6.2 秘诀:建立视图层次结构树 163 6.3 秘诀:查询子视图 164 6.4 管理子视图 166 6.4.1 添加子视图 166 6.4.2 重新排序和删除子视图 166 6.4.3 视图回调 166 6.5 秘诀:标记和检索视图 167 6.6 秘诀:命名视图 168 6.7 视图的几何特征 172 6.7.1 框架 172 6.7.2 变换 173 6.7.3 坐标系 173 6.8 秘诀:视图框架的处理 173 6.8.1 调整大小 174 6.8.2 CGRect和中心 175 6.8.3 其他实用工具方法 176 6.9 秘诀:移动带边界的视图到任意位置 179 6.10 秘诀:视图变形 180 6.11 显示和交互特性 183 6.12 UIView动画 183 6.12.1 建立UIView动画块 184 6.12.2 动画回调 184 6.13 秘诀:视图的淡入和淡出 185 6.14 秘诀:视图交换 186 6.15 秘诀:翻转视图 187 6.16 秘诀:使用Core Animation Transitions 188 6.17 秘诀:一般的Core Animation调用 190 6.18 翻页过渡 192 6.19 秘诀:当视图显示时反弹视图 193 6.20 秘诀:图像视图动画 195 6.21 补充内容:给视图添加映射 196 6.22 小结 199 第7章 图像处理 201 7.1 秘诀:查找和加载图像 201 7.1.1 读取图像数据 201 7.1.2 加载图像文件 203 7.2 秘诀:从iPhone相册访问照片 205 7.2.1 使用图像拾取器 206 7.2.2 添加2.x支持 206 7.2.3 添加3.1支持 206 7.2.4 拾取视频 206 7.3 秘诀:选择和定制相册中的图像 208 7.4 秘诀:拍摄照片并将照片写到相册上 210 7.5 秘诀:将图片保存到Documents文件夹 212 7.6 秘诀:通过电子邮件发送图片 213 7.7 秘诀:捕捉定时拍摄的照片 214 7.8 秘诀:使用定制摄像头覆盖图 216 7.9 秘诀:在可滚动视图中显示图像 218 7.10 秘诀:创建多图像分页滚动 220 7.11 秘诀:从头开始创建新图像 221 7.12 秘诀:构建图像缩略图 224 7.13 调整照片方向 227 7.14 捕捉屏幕截图 229 7.15 秘诀:直接处理位图 230 7.15.1 在位图上下文中绘制 230 7.15.2 应用图像处理 232 7.15.3 图像处理实况 233 7.16 补充内容:灰度模式 236 7.17 小结 237 第8章 手势和触摸 238 8.1 触摸 238 8.1.1 阶段 238 8.1.2 触摸和视图方法 239 8.1.3 触摸视图 239 8.1.4 多点触摸 240 8.2 秘诀:添加一个简单直观的操作界面 240 8.3 秘诀:限制移动 241 8.4 秘诀:测试触摸 242 8.5 秘诀:测试位图上的触摸 243 8.6 秘诀:向直接操作界面添加持久性 246 8.6.1 存储状态 246 8.6.2 恢复状态 247 8.7 秘诀:通过归档实现持久性 248 8.8 秘诀:添加撤销支持 250 8.8.1 创建撤销管理器 250 8.8.2 子视图撤销支持 250 8.8.3 使用导航栏 250 8.8.4 注册撤销 251 8.9 秘诀:添加晃动控制的撤销支持 252 8.9.1 添加撤销和恢复的动作名称 253 8.9.2 提供晃动以编辑支持 253 8.9.3 设置第一个响应程序 253 8.10 秘诀:屏幕绘图 254 8.11 秘诀:线的计算 255 8.12 秘诀:检测圆形 257 8.13 秘诀:多点触摸 259 8.14 秘诀:区分手势 260 8.15 补充内容:交互式调整大小和旋转 264 8.16 小结 269 第9章 构建和使用控件 270 9.1 UIControl类 270 9.1.1 控件种类 270 9.1.2 控件事件 270 9.2 按钮 272 9.3 在Interface Builder中添加按钮 273 9.3.1 样式 273 9.3.2 连接按钮与动作 274 9.3.3 假按钮 275 9.4 在Xcode中构建定制按钮 275 9.5 多行按钮文本 277 9.6 向按钮添加动画元素 277 9.7 秘诀:为按钮响应制作动画效果 278 9.8 秘诀:使用开关 279 9.9 秘诀:添加定制滑块缩略图 281 9.9.1 定制UISlider 281 9.9.2 增加效能 282 9.10 秘诀:创建一个可两次点击的分段控件 286 9.11 秘诀:子类化UIControl 287 9.11.1 跟踪触摸 288 9.11.2 分派事件 288 9.12 秘诀:关闭UITextField键盘 290 9.12.1 文本特征属性 291 9.12.2 其他文本字段属性 291 9.13 秘诀:关闭UITextView键盘 292 9.14 秘诀:构建更好的文本编辑器 294 9.15 秘诀:文本输入筛选 296 9.16 秘诀:添加一个页面指示器控件 298 9.17 秘诀:创建一个可定制的分页滚动条 300 9.18 秘诀:构建工具栏 304 9.18.1 在Xcode中构建工具栏 305 9.18.2 工具栏提示 307 9.19 补充内容:智能标签 307 9.20 小结 308 第10章 提醒用户 309 10.1 通过警告框直接与用户对话 309 10.1.1 构建简单的警告框 309 10.1.2 警告框委托 310 10.1.3 显示警告框 311 10.1.4 警告框类 311 10.2 秘诀:无按钮警告框 312 10.3 秘诀:使用run循环创建模态警告框 313 10.4 秘诀:要求用户进行文本输入 316 10.5 秘诀:对警告框视图使用可变参数 318 10.6 秘诀:展示简单的菜单 319 10.7 秘诀:在动作表中显示文本 321 10.8 “Please Wait”:向用户显示进度 321 10.9 秘诀:构建UIProgressView 322 10.10 构建定制覆盖图 324 10.11 秘诀:可点击的覆盖图 326 10.12 秘诀:可调整方向的滚动警告框 327 10.13 秘诀:使用网络活动指示器 329 10.14 秘诀:给应用程序贴标记 329 10.15 秘诀:简单的音频警告 330 10.15.1 系统声音 330 10.15.2 震动 331 10.15.3 警告 331 10.15.4 延迟 332 10.16 补充内容:展示音量警告框 333 10.17 小结 333 第11章 创建和管理表格视图 335 11.1 UITableView和UITableView- Controller简介 335 11.2 秘诀:实现最基本的表格 337 11.2.1 填充表格 337 11.2.2 数据源方法 338 11.2.3 重用单元格 338 11.2.4 字体表格示例 338 11.3 秘诀:更改表格的背景色 340 11.4 秘诀:创建表格图像后挡板 341 11.5 秘诀:单元格类型研究 343 11.6 秘诀:使用Interface Builder构建定制单元格 344 11.6.1 创建定制单元格的技巧 346 11.6.2 增加定制选择特性 347 11.7 秘诀:单元格颜色交替 347 11.8 秘诀:使用内置控件构建定制单元格 348 11.9 秘诀:记住定制单元格的控制状态 350 11.10 秘诀:创建勾选的表格单元格 353 11.11 移除单元格选中时的高亮显示状态 354 11.12 秘诀:处理展开配件 355 11.13 秘诀:删除单元格 357 11.13.1 显示删除控件 357 11.13.2 隐藏删除控件 357 11.13.3 处理删除请求 357 11.13.4 滑动单元格 358 11.13.5 添加单元格 358 11.14 秘诀:对单元格重新排序 360 11.15 秘诀:向表格添加撤销支持 361 11.15.1 支持“晃动以编辑” 362 11.15.2 添加Undo和Redo按钮 362 11.15.3 执行撤销和恢复 363 11.15.4 准备表格撤销操作 364 11.16 秘诀:表格排序 366 11.17 秘诀:搜索表格 367 11.17.1 构建搜索显示控制器 367 11.17.2 构建可搜索数据源方法 368 11.17.3 委托方法 369 11.18 秘诀:处理分段 370 11.18.1 创建基于分段的数据结构 370 11.18.2 分段计数和行计数 371 11.18.3 返回单元格 371 11.18.4 创建标题 372 11.18.5 创建分段索引 373 11.18.6 分段委托 374 11.19 秘诀:创建分组表格 374 11.20 秘诀:定制表头和脚注 375 11.21 秘诀:创建带有各种单元格类型和高度的分组表格 377 11.22 秘诀:构建多轮表格 380 11.23 秘诀:使用基于视图的选取器 383 11.24 秘诀:使用UIDatePicker 385 11.25 补充内容:格式化日期 388 11.26 小结 390 第12章 使用GameKit和Bonjour进行连接 391 12.1 秘诀:创建基本的GameKit服务 391 12.1.1 GameKit蓝牙限制 391 12.1.2 设备限制 392 12.1.3 会话 392 12.1.4 服务器、客户端、对等机 393 12.1.5 对等机连接过程 393 12.1.6 发送和接收数据 395 12.1.7 状态更改 396 12.1.8 创建GameKit辅助类 397 12.2 秘诀:后台监控 402 12.3 秘诀:通过GameKit发送复杂数据 403 12.4 秘诀:GameKit语音聊天 405 12.4.1 将GameKit作为中间人 405 12.4.2 实现语音聊天 406 12.5 秘诀:使用Bonjour创建iPhone服务器 407 12.6 秘诀:为iPhone Bonjour服务创建Mac客户端 411 12.7 秘诀:解决实际GameKit限制 414 12.7.1 使用iPhone粘贴板 415 12.7.2 存储数据 415 12.7.3 检索数据 415 12.7.4 可靠的粘贴板 415 12.8 秘诀:通过BonjourHelper连接iPhone进行游戏 418 12.8.1 注册Bonjour名称和端口 419 12.8.2 双工连接 419 12.8.3 读取数据 419 12.8.4 关闭连接 419 12.9 创建“在线”GameKit连接 426 12.10 补充内容:扫描服务 428 12.11 小结 431 第13章 网络连接 432 13.1 秘诀:检查网络状态 432 13.2 秘诀:为可达性扩展UIDevice类 433 13.3 秘诀:扫描连接变化 436 13.4 秘诀:重新获得IP和主机信息 439 13.5 秘诀:检查站点可用性 441 13.6 秘诀:同步下载 443 13.7 秘诀:异步下载 445 13.8 秘诀:应对身份验证的挑战 450 13.9 秘诀:使用密钥链存储敏感数据 451 13.9.1 密钥链包装器 451 13.9.2 密钥链持久性 452 13.10 秘诀:通过POST上传 453 13.11 秘诀:上传数据 456 13.12 秘诀:在应用程序之间共享密钥链 459 13.13 秘诀:将XML转换为树 460 13.13.1 构建解析树 461 13.13.2 使用树结果 462 13.13.3 分解树 464 13.14 秘诀:构建一个简单的基于Web的服务器 465 13.15 补充内容:FTPHelper 468 13.16 小结 469 第14章 设备能力 471 14.1 秘诀:访问核心设备信息 471 14.2 添加设备功能限制 472 14.3 秘诀:重新获得更多设备信息 473 14.4 秘诀:监控iPhone的电池状态 475 14.5 秘诀:启用和禁用接近传感器 476 14.6 秘诀:使用加速度将方向定位为“向上” 477 14.7 秘诀:使用加速度移动屏幕上的对象 479 14.8 秘诀:检测设备方向 481 14.9 秘诀:利用运动事件检测晃动 482 14.10 秘诀:直接从加速计检测晃动 484 14.11 补充内容:检查可用的磁盘空间 487 14.12 小结 487 第15章 音频、视频和媒体工具 488 15.1 秘诀:使用AVAudioPlayer播放音频 488 15.1.1 初始化音频播放器 488 15.1.2 监控音量水平 489 15.1.3 回放进度和拖曳播放 490 15.1.4 捕获回放结束 490 15.2 秘诀:循环播放音频 494 15.3 秘诀:处理音频中断 496 15.4 秘诀:忽略休眠的音频 497 15.5 秘诀:录制音频 499 15.6 秘诀:使用音频队列录制音频 503 15.7 秘诀:使用媒体播放器播放视频 508 15.8 秘决:录制视频 510 15.9 秘诀:选取和编辑视频 512 15.10 秘诀:使用MPMediaPicker- Controller选取音频 514 15.11 秘诀:创建媒体查询 517 15.11.1 建立查询 517 15.11.2 使用谓词 518 15.11.3 解决速度问题 519 15.12 秘诀:使用MPMusicPlayer- Controller 520 15.13 补充内容:额外的电影播放器属性 524 15.14 小结 524 第16章 推送通知 525 16.1 推送通知简介 525 16.1.1 推送技术的工作原理 526 16.1.2 多个提供商支持 526 16.1.3 安全 527 16.1.4 推送的局限性 527 16.2 准备推送 527 16.2.1 生成一个应用程序标识符 528 16.2.2 生成SSL证书 528 16.2.3 推送服务特有的准备文件 530 16.3 注册应用程序 530 16.3.1 检索设备令牌 531 16.3.2 处理令牌请求错误 532 16.3.3 响应通知 532 16.4 秘诀:推送客户端框架 533 16.5 构建通知的有效内容 538 16.5.1 本地化警告 539 16.5.2 从字典转换为JSON 539 16.5.3 自定义数据 540 16.5.4 启动时接收数据 540 16.6 秘诀:发送通知 541 16.7 秘诀:实际使用推送服务 545 16.8 反馈服务 549 16.9 推送服务设计 550 16.10 小结 550 第17章 使用Core Location和MapKit 552 17.1 Core Location的工作原理 552 17.1.1 GPS定位 552 17.1.2 Skyhook Wi-Fi定位 552 17.1.3 蜂窝基站定位技术 553 17.1.4 因特网提供商定位技术 553 17.1.5 混合使用这些方法 553 17.2 秘诀:Core Location简介 554 17.3 秘诀:跟踪速率 556 17.4 秘诀:计算速率和距离 557 17.5 秘诀:使用heading值跟踪北向 559 17.6 秘诀:逆向地理编码 561 17.7 秘诀:查看位置 562 17.8 秘诀:用户位置注解 565 17.9 秘诀:创建地图注解 567 17.9.1 创建、添加和删除注解 568 17.9.2 注解视图 568 17.9.3 自定义注解视图 569 17.9.4 响应注解按钮轻击事件 570 17.10 补充内容:地理编码 574 17.11 小结 577 第18章 连接地址簿 578 18.1 秘诀:使用地址簿 578 18.1.1 地址簿UI 578 18.1.2 地址簿 578 18.1.3 检索和设置ABRecord字符串 579 18.1.4 简单的日期属性 581 18.1.5 获取和设置多值记录属性 581 18.1.6 地址和即时消息属性 584 18.1.7 使用地址簿图像 586 18.1.8 创建、添加和删除记录 586 18.1.9 搜索联系人 587 18.1.10 处理分组 588 18.1.11 ABContact、ABGroup和ABContactsHelper 590 18.2 秘诀:搜索地址簿 590 18.3 秘诀:访问图像数据 592 18.4 秘诀:选取人员 594 18.5 秘诀:限制联系人选取器属性 595 18.6 秘诀:添加新联系人 597 18.7 秘诀:修改现有联系人 599 18.8 秘诀:ABUnknownPersonView-Controller 600 18.9 补充内容:添加随机的联系人拼图 602 18.10 小结 604 第19章 使用Core Data 605 19.1 Core Data简介 605 19.1.1 创建和编辑模型文件 605 19.1.2 生成头文件 606 19.1.3 创建Core Data上下文 607 19.1.4 添加对象 608 19.1.5 查询数据库 610 19.1.6 检测更改 611 19.1.7 删除对象 611 19.2 秘诀:将Core Data用作表格数据源 613 19.3 秘诀:搜索表与Core Data 616 19.4 秘诀:集成Core Data表与实时数据编辑 618 19.5 秘诀:使用Core Data实现撤销—重做支持 620 19.6 小结 622 第20章 StoreKit:应用程序内购买 623 20.1 StoreKit入门 623 20.2 创建测试账户 625 20.3 创建应用程序内购买商品 625 20.3.1 填写定价部分 626 20.3.2 添加商品详细信息 627 20.3.3 提交购买GUI屏幕截图 628 20.3.4 开发人员批准 628 20.4 提交应用程序 628 20.5 构建GUI 629 20.6 购买商品 631 20.6.1 注销iTunes账户以进行测试 631 20.6.2 购买之后重新获得编程控制 631 20.6.3 注册购买商品 632 20.6.4 恢复购买商品 633 20.6.5 购买多个商品 634 20.6.6 处理注册购买过程中的延迟 634 20.7 验证收据 634 20.8 小结 636 第21章 辅助功能以及其他iPhone OS服务 637 21.1 将VoiceOver辅助功能添加到应用程序 637 21.1.1 Interface Builder中的辅助功能 637 21.1.2 在代码中使用辅助功能 639 21.1.3 使用模拟器进行测试 640 21.1.4 在iPhone上测试辅助功能 640 21.2 秘诀:添加自定义设置包 641 21.2.1 Settings应用程序 642 21.2.2 避免敏感信息 643 21.2.3 Settings模式 643 21.2.4 定义设置包 643 21.2.5 设置和用户 647 21.2.6 检查用户默认值 647 21.3 秘诀:创建基于URL的服务 648 21.3.1 使用URL模式 648 21.3.2 服务缺点 648 21.3.3 交叉促销 649 21.3.4 注册模式:声明URL 649 21.3.5 注册模式:添加处理程序方法 649 21.3.6 使调用应用程序恢复控制 650 21.3.7 实现自定义模式 651 21.4 小结 652 附录A Info.plist密钥 653
内容简介
本书提供了关于iPhone SDK 以及iPhone 开发的全面信息,对iPhone SDK 中的各种组件做了深入浅出的介绍,包括iPhone 3.0 SDK 的所有新增特性,同时对iPhone 开发的基本流程、基本原理和基本原则进行了详细且通俗的讲解。此外,还结合实例讲解了如何开发各种iPhone 特性,包括视图、视图控制器、警告、表格、媒体、控件、人物、位置和事件。 本书适合iPhone 和Mac 开发人员。
下载说明
1、iPhone开发秘籍 (第2版)是作者[美] Erica Sadun创作的原创作品,下载链接均为网友上传的网盘链接!
2、相识电子书提供优质免费的txt、pdf等下载链接,所有电子书均为完整版!