iOS编程(第3版)
Matt Neuburg
夏宏, 贾静平, 琚赟 等译
出版时间:2014年10月
页数:1020
“Neuburg是这一时代我最喜欢的程序设计书籍的作者。”
——John Gruber,Daring Fireball

本书旨在为读者使用Cocoa Touch打好一个牢固的基础,避免在iPhone和iPad应用程序开发中出现的问题。通过此次修订和扩展,你将探究Cocoa和学习如何有效地使用Objective-C和Xcode。本书全面覆盖了iOS 6,讲解严谨而有序,无论你是第一次接触iOS,还是作为参考以提升现在的技能,使用本书都很理想。
学习iOS 6引入的特性,包括Objective-C语言的高级特性、自动合成、自动布局、新的视图控制器旋转规则、unwind segues、状态恢复、文本风格和视图集成。

· 学习Objective-C语言细节和面向对象编程概念。
· 理解Xcode工程及其生命周期的各个阶段。
· 抓住关键的Cocoa概念,如类之间的关系、接收事件以及模型-视图-控制器架构。
· 学习如何管理、绘制、组合视图和层,并生成动画。
· 熟悉视图控制器和它们之间的关系,以及nib和storyboard的管理。
· 全面探索所有基本的接口对象,如滚动视图、表格视图及其控制。
· 探讨Cocoa中针对音频、视频、传感器、地图和其他特征的框架。
· 涉及高级的专题,如线程和网络。

Matt Neuburg拥有古典文学博士学位,任教于许多高等院校。自1968年以来一直从事计算机编程,Matt编写了许多面向Mac OS X和iOS的应用程序,他是《MacTech Magazine》杂志的前任编辑,也是TidBITS的终身特约编辑。他早期的O’Reilly书籍有《Frontier: The Definitive Guide》、《REALbasic: The Definitive Guide》以及《AppleScript: The Definitive Guide》。
  1. 前言
  2. 第一部分 语言
  3. 第1章 C语言的必备知识
  4. 编译、语句和注释
  5. 选择编译器
  6. 变量声明、初始化和数据类型
  7. 现代的枚举语法
  8. 结构体
  9. 指针
  10. 数组
  11. 运算符
  12. 程序流控制和条件语句
  13. 函数
  14. 指针参数和地址运算符
  15. 文件
  16. 现代Objective-C语言的函数声明
  17. 标准库
  18. 更多的预处理指令
  19. 数据类型限定符
  20. 第2章 面向对象的编程
  21. 对象
  22. 消息和方法
  23. 类和实例
  24. 类的方法
  25. 实例变量
  26. 面向对象的基本原理
  27. 第3章 Objective-C语言对象与消息
  28. 实例引用即为指针
  29. 实例的引用、初始化以及nil
  30. 实例引用和赋值
  31. 实例引用和内存管理
  32. 消息和方法
  33. 发送消息
  34. 方法声明
  35. 嵌套方法调用
  36. 不重载
  37. 参数列表
  38. 无法识别的选择器
  39. 类型转换和id类型
  40. 消息的数据类型
  41. C语言函数
  42. CFTypeRefs
  43. 块对象
  44. 第4章 Objective-C类
  45. 类和父类
  46. 接口和实现
  47. 头文件和实现文件
  48. Cocoa自己的头文件
  49. 类方法
  50. 悄然产生的类对象
  51. 第5章 Objective-C 实例
  52. 实例的创建
  53. 现成的实例化
  54. 从零开始实例化
  55. 基于nib的实例化
  56. 多态
  57. self关键字
  58. super关键字
  59. 实例变量和存取器
  60. 键-值编码
  61. 属性
  62. 如何写初始化器
  63. 第二部分 集成开发环境
  64. 第6章 Xcode工程的解析
  65. 新建项目
  66. 项目窗口
  67. 导航面板
  68. 工具面板
  69. 编辑器
  70. 项目文件和它所依赖的环境
  71. 目标
  72. 构建编译阶段
  73. 创建设置
  74. 配置
  75. 方案和目标设备
  76. 从项目到程序
  77. 创建设置
  78. 属性列表设置
  79. nib文件和storyboard文件
  80. 其他资源
  81. 代码
  82. 框架和SDK
  83. 重命名事项
  84. 第7章 nib管理
  85. Nib编辑界面体验之旅
  86. Dock
  87. 画布
  88. 监视器和库
  89. nib加载和文件的所有者
  90. 制作和加载一个nib
  91. 出口连接
  92. 创建出口的更多方法
  93. 更多关于出口
  94. 连接代码是一种错觉
  95. nib之间的连接
  96. 动作连接
  97. 其他基于nib实例的初始化
  98. 第8章 文档
  99. 文档窗口
  100. 类文档页
  101. 示例代码
  102. 其他资源
  103. 快速帮助
  104. 符号
  105. 头文件
  106. 互联网资源
  107. 第9章 项目的生命周期
  108. 设备架构及条件代码
  109. 其他模拟器的SDK
  110. 本地化
  111. 编辑代码
  112. 自动完成
  113. 代码片段
  114. Fix-it功能和实时语法检查
  115. 你的代码导航
  116. 调试
  117. 原始调试
  118. Xcode调试
  119. 调试器选取
  120. 单元测试
  121. 静态分析器
  122. 清理
  123. 在模拟器中运行
  124. 在设备上运行
  125. 配置文件与设备管理
  126. 版本控制
  127. Instruments
  128. 发布
  129. Ad Hoc发布
  130. 应用程序的最后准备
  131. 应用程序中的图标
  132. 其他图标
  133. 启动图像
  134. 截图
  135. 属性列表设置
  136. 提交到App Store
  137. 如果许可证过期怎么办?
  138. 第三部分 Cocoa
  139. 第10章 Cocoa类
  140. 子类
  141. 类别
  142. 分割一个类
  143. 类扩展
  144. 协议
  145. 非正式协议
  146. 可选方法
  147. 一些Foundation类
  148. 有用的结构体和常量
  149. NSString 及其相关类
  150. NSDate及其相关类
  151. NSNumber
  152. NSValue
  153. NSData
  154. 相等性和比较
  155. NSIndexSet
  156. NSArray和NSMutableArray
  157. NSSet及其相关类
  158. NSDictionary和NSMutableDictionary
  159. NSNull
  160. 不可变和可变
  161. 属性列表
  162. NSObject探秘
  163. 第11章 Cocoa事件
  164. 收到事件的原因
  165. 子类化
  166. 通知
  167. 接收一个内置的通知
  168. 注销
  169. NSTimer
  170. 委托
  171. 数据源
  172. 动作
  173. 响应者链
  174. 推迟响应
  175. Nil-targeted动作
  176. 术语“First Responder”
  177. 被事件淹没
  178. 延迟执行
  179. 应用程序生存期事件
  180. 第12章 访问器和内存管理
  181. 键值编码
  182. 键值编码和Outlet
  183. 键路径和访问器数组
  184. 内存管理
  185. Cocoa内存管理的原则
  186. 调试内存管理错误
  187. 内存管理的金科玉律
  188. ARC的功能及用途
  189. Cocoa对象如何管理内存
  190. 自动释放
  191. 实例变量的内存管理(非ARC)
  192. 实例变量的内存管理(ARC)
  193. 保留环和弱引用
  194. 非常规内存管理情况
  195. nib加载和内存管理
  196. 全局变量的内存管理
  197. 指向void上下文信息指针的内存管理
  198. CFTypeRefs的内存管理
  199. 属性
  200. 属性内存管理策略
  201. 属性声明语法
  202. 属性访问器合成
  203. 动态访问器
  204. 第13章 数据通信
  205. 模型-视图-控制器
  206. 实例的可见性
  207. 通过实例化获得可见性
  208. 通过关系获得可见性
  209. 全局可见性
  210. 通知
  211. 键-值观察
  212. 第四部分 视图
  213. 第14章 视图
  214. 窗口
  215. 子视图和超视图
  216. 可见性与不透明度
  217. 框架
  218. 边框和中心
  219. 窗口坐标和屏幕坐标
  220. 变换
  221. 布局
  222. 自动缩放
  223. 自动布局
  224. Nib中的约束
  225. 布局事件的发生顺序
  226. 自动布局和视图变换
  227. 第15章 绘图
  228. UIImage和UIImageView
  229. 绘图上下文
  230. UIImage绘图
  231. CGImage绘图
  232. 为何发生翻转
  233. CIFilter和CIImage
  234. 绘制UIView
  235. 设置绘图上下文
  236. 路径和绘图
  237. 裁剪
  238. 我的上下文有多大?
  239. 渐变
  240. 色彩和图案
  241. 绘图上下文变换
  242. 阴影
  243. 点和像素
  244. 内容模式
  245. 第16章 图层
  246. 视图和图层
  247. 图层和子层
  248. 操纵图层层次结构
  249. 定位子层
  250. CAScrollLayer
  251. 子层的布局
  252. 在图层中绘图
  253. 自动重新显示视图的基础图层
  254. 调整内容尺寸及定位
  255. 图层的自我绘制
  256. 变换
  257. 深度
  258. 阴影、边框和其他
  259. 图层效率
  260. 图层和键值编码
  261. 第17章 动画
  262. 绘图、动画和线程
  263. 表示图层
  264. UIImageView和UIImag动画
  265. 视图动画
  266. 动画块
  267. 修改动画块
  268. 过渡动画
  269. 基于Block的视图动画
  270. 隐含层动画
  271. 动画事务
  272. 事务的真相
  273. 媒体定时函数
  274. Core Animation
  275. CABasicAnimation类及其继承
  276. 使用CABasicAnimation
  277. 关键帧动画
  278. 使属性可动画处理
  279. 编组动画
  280. 过渡
  281. 动画列表
  282. 动画和自动布局
  283. 动作
  284. 动作的定义
  285. 动作搜索
  286. 挂钩到动作搜索
  287. 非属性动作
  288. 发射器图层
  289. CIFilter过渡
  290. 第18章 触摸
  291. 触摸事件和视图
  292. 接收触摸
  293. 限制触摸
  294. 解释触摸
  295. 手势识别器
  296. 手势识别器类
  297. 多个手势识别器
  298. 手势识别器委托
  299. Nib中的手势识别器
  300. 触摸传递
  301. 触碰测试
  302. 初始化触摸事件传递
  303. 手势识别器和视图
  304. 限制触摸
  305. 重新识别
  306. 触摸和响应者链
  307. 第五部分 界面
  308. 第19章 视图控制器
  309. 视图控制器层次结构
  310. 视图控制器和视图创建
  311. 手动视图
  312. 普通自动化视图
  313. 在单独的Nib中的视图
  314. 视图什么时候被加载?
  315. Nib实例化的视图控制器
  316. storyboard初始化的视图控制器
  317. 旋转
  318. 什么旋转了?
  319. 旋转和布局事件
  320. 初始朝向
  321. 被展示的视图控制器
  322. 什么是模态?
  323. 被展示的视图动画
  324. 展示风格
  325. 被展示的视图的旋转
  326. 作为对旋转的响应展示一个视图
  327. 标签栏控制器
  328. 标签栏条目
  329. 配置一个标签栏控制器
  330. 导航控制器
  331. 栏上按钮条目
  332. 导航条目
  333. 工具栏条目
  334. 配置一个导航控制器
  335. 分页视图控制器
  336. 容器视图控制器
  337. Storyboard
  338. Segue
  339. 回溯Segue
  340. storyboard和定制的容器视图控制器
  341. 视图控制器生命周期事件
  342. 视图控制器内存管理
  343. 状态恢复
  344. 参与到状态恢复中
  345. 恢复ID和恢复类
  346. 恢复视图控制器状态
  347. 第20章 滚动视图
  348. 创建一个滚动视图
  349. 滚动
  350. 分页
  351. 区块
  352. 缩放
  353. 以编程方式缩放
  354. 细节的缩放
  355. 滚动视图代理
  356. 滚动视图的触摸
  357. 滚动视图性能
  358. 第21章 表格视图和集合视图
  359. 表格视图单元格
  360. 内置的单元格样式
  361. 注册一个单元格类
  362. 定制单元格
  363. 表格视图数据
  364. 三个大问题
  365. 表格视图节
  366. 刷新表格视图数据
  367. 可变的行高
  368. 表格视图选择
  369. 表格视图滚动和布局
  370. 表格视图状态恢复
  371. 表格视图搜索
  372. 表格视图编辑
  373. 删除表格项
  374. 表格项中可编辑的内容
  375. 插入表格项
  376. 重新排列表格项
  377. 动态表格内容
  378. 表格视图菜单
  379. 集合视图
  380. 第22章 弹出框和分割视图
  381. 配置和显示一个弹出框
  382. 管理一个弹出框
  383. 关闭一个弹出框
  384. 弹出框和被展示视图
  385. 弹出框Segue
  386. 自动弹出框
  387. 分隔视图
  388. 第23章 文本
  389. 带属性的字符串
  390. UILabel
  391. UITextField
  392. 弹出和关闭键盘
  393. 键盘覆盖文本域
  394. 配置键盘
  395. 文本域代理和控制事件消息
  396. 文本字段菜单
  397. UITextView
  398. 核心文本
  399. UITextInput
  400. 第24章 Web视图
  401. 加载Web视图内容
  402. Web视图状态恢复
  403. 和一个Web视图通信
  404. 第25章 控件和其他视图
  405. UIActivityIndicatorView
  406. UIProgressView
  407. UIPickerView
  408. UISearchBar
  409. UIControl
  410. 在内部触摸和在外部触摸
  411. UISwitch
  412. UIStepper
  413. UIPageControl
  414. UIDatePicker
  415. UISlider
  416. UISegmentedControl
  417. UIButton
  418. 自定义控件
  419. UINavigationBar
  420. 风景iPhone栏计量
  421. UIToolbar
  422. UITabBar
  423. 外观代理
  424. 第26章 模态对话框
  425. 警告视图
  426. 动作表单
  427. 对话框的替代选择
  428. 本地通知
  429. 活动视图
  430. 第六部分 框架
  431. 第27章 音频
  432. 系统声音
  433. 音频会话
  434. 中断
  435. 切换音频通道
  436. 音频播放器
  437. 声音的遥控
  438. 声音的后台播放
  439. 更多有关声音的主题
  440. 第28章 视频
  441. MPMoviePlayerController
  442. MPMoviePlayerViewController
  443. UIVideoEditorController
  444. AV Foundation视频介绍
  445. 第29章 音乐库
  446. 浏览音乐库
  447. 音乐播放器
  448. 音乐选择器
  449. 第30章 图片库和拍摄图像
  450. UIImagePickerController
  451. 从图片库中选取
  452. 使用照相机
  453. 使用AV Foundation拍摄图像
  454. Assets Library框架
  455. 第31章 地址簿
  456. 地址簿数据库
  457. 地址簿的界面
  458. ABPeoplePickerNavigationController
  459. ABPersonViewController
  460. ABNewPersonViewController
  461. ABUnknownPersonViewController
  462. 第32章 日历
  463. 日历数据库
  464. 日历界面
  465. 第33章 邮件和消息
  466. 邮件消息
  467. 文本消息
  468. Twitter帖子
  469. 第34章 地图
  470. 显示一张地图
  471. 注释
  472. 覆盖图
  473. 地图工具包和当前位置
  474. 地理编码
  475. 与Maps应用程序的通信
  476. 第35章 传感器
  477. 位置
  478. 朝向
  479. 加速度和姿态
  480. 摇动事件
  481. 单纯的加速度
  482. 陀螺仪
  483. 第七部分 其他主题
  484. 第36章 持久性存储
  485. 沙箱
  486. 以可视方式检查沙箱
  487. 基本的文件操作
  488. 文件的存取
  489. 用户默认值
  490. 文件的共享
  491. 文档类型
  492. 分发文档
  493. 文档架构
  494. iCloud
  495. XML
  496. SQLite
  497. Core Data框架
  498. 图像文件格式
  499. 第37章 网络基础
  500. HTTP请求
  501. Bonjour
  502. 推送通知
  503. 其他网络话题
  504. 第38章 线程
  505. 主线程
  506. 并发到底是什么?
  507. 为什么线程很难
  508. 三种实现线程的方法
  509. 手动线程
  510. NSOperation
  511. Grand Central Dispatch
  512. 线程和应用程序的后台处理
  513. 第39章 撤销
  514. 撤销管理器
  515. 撤销的界面
  516. 撤销的架构
  517. 第40章 结束语
书名:iOS编程(第3版)
作者:Matt Neuburg
译者:夏宏, 贾静平, 琚赟 等译
国内出版社:中国电力出版社
出版时间:2014年10月
页数:1020
书号:978-7-5123-5559-0
原版书书名:Programming iOS 6, Third Edition
原版书出版商:O'Reilly Media
Matt Neuburg
 
Matt Neuburg从1968年就开始计算机编程了,当时他只有14岁,是一个某种意义上的地下高中俱乐部的一员,俱乐部每周聚会一次,用原始的电传打字机PDP-10s为银行做分时操作工作。 他偶尔也使用普林斯顿大学的IBM-360/67,但一天他把穿孔卡片丢掉后,他沮丧地放弃了。他在Swarthmore大学的专业是希腊语,1981年他在Cornell大学获得了博士学位,毕业论文(关于Aeschylus)是在一个大型机上写出来的。他在许多知名的高等学校教授古典语言、文学和文化,但这其中的大多数学校都否认了解他的存在,他发表了很多难以吸引任何人的学究气的文章。这其间,他获得了一台Apple IIc,于是又一次令人绝望地迷上了计算机,在1990年,他转向Macintosh并编写了一些具有教育性的和实用的免费软件,成为了在线杂志TidBITS的一名早期的正式投稿人。1995年,他离开学术界,编辑了MacTech杂志。1996年8月,他成为了一名自由作家,这意味着他会一直要找活干。他也是O'Reilly的两本其他书的作者:《Frontier: 权威指南》和《REALbasic: 权威指南》。
 
 
本书封面的动物是美洲食蜂鹟,是北美霸鹟属13种鸣鸟中的一种。一群美洲食蜂鹟被称为“食蜂鹟加冕”、“食蜂鹟宫廷”或“食蜂鹟暴君”。
美洲食蜂鹟吃昆虫,它经常在飞行中捕捉,从栖息的枝头上猛扑向半空中的昆虫。它们也把浆果和水果作为食物的补充。它们有长而尖的翅膀,雄性在空中展示它们精美的翅膀用以求偶。
属名(指的是“暴君”或“专制者”)和常见的名字(“食蜂鹟”)都源于这种鸟类侵略性的防守自己的领地、繁殖区域和伴侣。有记录显示它们攻击过红尾鹰(体型比它大20倍以上),从树木上赶走冠蓝鸦,驱赶乌鸦和渡鸦(它们凌驾于很多大型鸟类,灰色美洲食蜂鹟已经被采纳为波多黎民族主义的象征)。
“美洲食蜂鹟”多指的是东部食蜂鹟(T. tyrannus),在美国北部大量发现,是一种一般大小的食蜂鹟(7.5?9英寸长,翼展13英寸)。这种常见又分布广泛的鸟类头部和背部都是黑灰色,颈部、胸部和腹部是白色。它的红冠十分罕见。它那断断续续尖锐的蜂鸣声被描述为“在电线之间跳跃的火花”或是电铁丝网发出的声音。