iOS编程
作者简介:
Joe Conway是Big Nerd Ranch的资深教师,自iOS平台发布以来一直从事相关的咨询服务。Joe毕业于美国威斯康辛大学,在Mac OS X早期即开始编写Objective-C和Cocoa代码。他编写了Big Nerd Ranch的“iOS新手培训课程”教材。该教材 广受好评,是本书的原型。 Aaron Hillegass曾就职于NeXT公司和Apple公司,目前在Big Nerd Ranch教授iOS编程课程。Aaron在NeXT时编写了第一本OpenStep教材(OpenStep是Cocoa的前身)。本书以Big Nerd Ranch的教学课程为基础,涵盖了近20年OpenStep和Cocoa的开发成果。
内容简介:
第3版更新了iOS5和Xcode4.3的内容。全书涵盖了开发iOS应用的方方面面。从Objective-C基础知识到新增加的语言特性;从AppKit库到常见的Cocoa设计模式;从Xcode技巧到Instrumen t st等。如果读者刚接触iOS编程,阅 读本书前两章可以快速入门。如果读者已经有iOS编程经验,阅读本书可以拾遗补缺。本书的另一个特色是教读者以正确的方法解决问题。Objective-C的习惯约定有哪些(例如命名约定,内存管理约定),创建子类时如何处理初始化方法,Cocoa的常见设计模式有哪些,如何选择数据保存方法等。这些问题,如果读者自己摸索,难免费时费力。本书已经将这些知识整理、归纳并清楚地呈现在读者面前。 Big Nerd Ranch培训系列中文图书网站:http://www.iosprogrammingbook.com/
目录:
前言 第1章 第一个简单的iOS应用 1 1.1 创建Xcode项目 2 1.2 创建界面 5 1.3 模型-视图-控制器 9 1.4 声明 11 1.5 创建关联 13 1.6 实现方法 17 1.7 针对模拟器构建并运行应用 20 1.8 安装应用 22 1.9 应用图标 23 1.10 启动图片 25 第2章 Objective-C 29 2.1 对象 29 2.2 使用实例 30 2.3 编写命令行工具RandomPossessions 33 2.4 创建Objective-C类的子类 39 2.5 异常与未知选择器 56 2.6 快速枚举 58 第3章 通过ARC管理内存 61 3.1 堆 61 3.2 栈 62 3.2 指针变量与对象所有权 63 3.4 内存管理 64 3.5 Strong引用与Weak引用 67 3.6 属性 72 3.7 copy特性 77 3.8 用点号调用存取方法 78 第4章 委托与Core Location 81 4.1 项目、目标与框架 82 4.2 Core Location 83 4.3 委托 87 4.4 使用调试器 91 第5章 MapKit与文本输入 103 5.1 对象图 103 5.2 MapKit框架 104 5.3 界面属性 105 5.4 设置MapView对象的委托对象 108 第6章 UIView子类与UIScrollView 121 6.1 视图与视图层次结构 122 6.2 创建自定义视图 124 6.3 UIView的drawRect:方法 128 6.4 Core Graphics 131 6.5 UIKit中的绘图扩展 132 6.6 重画视图 134 6.7 运动事件 136 6.8 使用UIScrollView 138 6.9 隐藏状态条 142 第7章 视图控制对象 145 7.1 UIViewController 145 7.2 UITabBarController 155 7.3 视图控制对象的生命周期 159 7.4 UIViewController子类与模板 168 第8章 通告机制与自动转屏 173 8.1 通告中心 173 8.2 UIDevice通告 175 8.3 自动转屏 176 8.4 强制使用横排模式 184 第9章 UITableView与UITableViewController 187 9.1 编写Homepwner应用 187 9.2 UITableViewController 189 9.3 UITableView数据源 192 9.4 UITableViewCell对象 198 9.5 代码片段库 203 第10章 编辑UITableView 207 10.1 编辑模式 207 10.2 增加行 213 10.3 删除行 215 10.4 移动行 216 第11章 UINavigationController 219 11.1 UINavigationController 219 11.2 额外的视图控制对象 223 11.3 UINavigationController的导航功能 228 11.4 UINavigationBar 233 第12章 相机 239 12.1 通过UIImageView对象显示图片 239 第13章 UIPopoverController与模态视图控制对象 261 13.1 将Homepwner改为通用应用 261 13.2 UIPopoverController 263 13.3 更多的模态视图控制对象 266 第14章 保存、读取与应用状态 279 14.1 固化 279 14.2 应用沙盒 281 14.3 NSKeyedArchiver与NSKeyedUnarchiver 283 14.4 应用状态与状态切换 286 14.5 通过NSData将数据写入文件 289 14.7 再谈内存过低警告 291 14.8 模型-视图-控制器-存储设计模式 292 第15章 创建UITableViewCell子类 299 15.1 创建HomepwnerItemCell 299 15.2 处理图片 305 15.3 由UITableViewCell对象转发动作消息 308 第16章 Core Data 317 16.1 对象-关系映射 317 16.2 用Core Data重写BNRItemStore的数据保存功能 318 16.3 再谈SQL 336 16.4 Faults 337 16.5 各种存取机制的优缺点 339 第17章 本地化 341 17.1 通过NSLocale实施国际化 342 17.2 资源的本地化 343 17.3 NSLocalizedString与字符串对照表 347 第18章 NSUserDefaults 351 18.1 更新Whereami 351 18.2 使用NSUserDefaults 353 第19章 触摸事件与UIResponder 357 19.1 触摸事件 357 19.2 创建TouchTracker应用 359 19.3 实现TouchDrawView,完成绘图功能 360 19.4 处理触摸事件并创建线条对象 361 19.5 响应对象链 364 第20章 UIGestureRecognizer与UIMenuController 367 20.1 UIGestureRecognizer子类 367 20.2 用UITapGestureRecognizer对象识别“按下”手势 368 20.3 UIMenuController 371 20.4 UILongPressGestureRecognizer 372 20.5 UIPanGestureRecognizer以及同时识别多个手势 374 第21章 Instruments 380 21.1 静态分析器 380 21.2 Instruments 382 21.3 Xcode方案 392 21.9 创建新方案 394 21.4 构建设置 396 第22章 Core Animation Layer 399 22.1 层与视图的关系 399 22.2 创建CALayer对象 400 22.3 层的显示内容 403 22.4 隐式可动画属性 405 第23章 通过CAAnimation控制动画 411 23.1 动画对象 411 23.2 通过CABasicAnimation实现旋转动画 414 23.3 通过CAKeyframeAnimation实现弹跳动画 419 第24章 UIStoryboard 423 24.1 创建Storyboard文件 423 24.2 Storyboard文件中的UITableViewController 427 24.3 Segue 430 24.4 Storyboards的优缺点 434 第25章 Web服务与UIWebView 437 25.1 Web服务 438 25.2 UIWebView 456 第26章 UISplitViewController与NSRegularExpression 463 26.1 在Nerdfeed中使用UISplitViewController 464 26.2 主、从视图控制对象间的通信 468 26.3 在竖排模式下显示主视图控制对象 475 26.4 将Nerdfeed改为通用应用 477 26.5 NSRegularExpression 478 第27章 Block对象 485 27.1 Block对象及其语法 485 27.2 浅谈如何使用Block对象 490 27.3 捕获变量 493 27.4 Block对象的常见用途 496 第28章 模型-视图-控制器-存储 503 28.1 为什么需要存储对象 503 28.2 创建BNRFeedStore 506 28.3 使用BNRFeedStore对象 508 28.5 通过JSON格式传输数据 521 28.6 再谈存储对象 526 第29章 再谈MVCS 529 29.1 缓存RSS数据 529 29.2 高级缓存 535 29.3 已读RSSItem对象与未读RSSItem对象 545 29.4 使用存储对象的其他益处 550 第30章 iCloud 555 30.1 使用iCloud前的准备工作 556 30.2 Ubiquity Container 556 30.3 支持iCloud的provisioning profile 558 30.4 Core Data与iCloud 561 第31章 后记 569 31.1 接下来做什么 569 31.2 结束语 570 索引 571
评论