内容简介
《iOS编程(第三版)》全面细致地讲解Cocoa Touch的基础知识,深入解读并剖析在开发iPhone及iPad应用时可能遇到的各种问题,并揭示如何高效地使用Objective-C和Xcode顺利完成iPhone及iPad应用开发之旅。主要内容有:学习Objective-C语言的细节以及面向对象程序设计理念。理解Xcode工程的结构和生命周期的各个阶段。了解Cocoa的关键概念,例如,类之间的联系、接收事件以及模型-视图-控制器架构。学会管理、绘制、组合视图和层,并创建动画。熟悉视图控制器以及它们之间的联系,管理nib和串联图。深入剖析所有的基本界面对象,例如,滚动视图、表格视图和控件。探索Cocoa框架中的声音、视频、传感器和地图等功能。使用线程和网络等高级功能。
作者简介
Matt Neubury博士,自1968年以来就是一名软件开发工程师,精通OSX和iOS上的应用开发。他既是《Mac Tech》杂志的编辑,也是TidBITS的长期特约编辑。在O‘Reilly出版了的图书有《Frontier:The Definitive Guide》、《REALbasic:The DefinitiveGuide》,以及《Apple Script: The Definitive Guide》等。
内页插图
目录
前言
第一部分 语言
第1章 C语言的必备知识
第2章 面向对象的编程
第3章 Objective—C语言对象与消息
第4章 Objective—C类
第5章 Objective—C实例
第二部分 集成开发环境
第6章 Xcode工程的解析
第7章 nib管理
第8章 文档
第9章 项目的生命周期
第三部分 Cocoa
第10章 Cocoa类
第11章 Cocoa事件
第12章 访问器和内存管理
第13章 数据通信
第四部分 视图
第14章 视图
第15章 绘图
第16章 图层
第17章 动画
第18章 触摸
第五部分 界面
第19章 视图控制器
第20章 滚动视图
第21章 表格视图和集合视图
第22章 弹出框和分割视图
第23章 文本
第24章 Web视图
第25章 控件和其他视图
第26章 模态对话框
第六部分 框架
第27章 音频
第28章 视频
第29章 音乐库
第30章 图片库和拍摄图像
第31章 地址簿
第32章 日历
第33章 邮件和消息
第34章 地图
第35章 传感器
第七部分 其他主题
第36章 持久性存储
第37章 网络基础
第38章 线程
第39章 撤销
第40章 结束语
精彩书摘
一般情况下,你必须警惕具有独特内存管理行为的Cocoa对象,这种行为通常会在文档中明确说明。例如,UIWebView的文档警告说:“在释放一个已设置了委托的UIWebView实例前,你必须首先设置其委托属性为nil。”而一个CAAnimation对象会保留其委托,这是个例外,如果你没有意识到这点,则可能会导致出错。
也有一些Apple文档没有给出考虑特殊内存管理的任何警告,但ARC本身由于在block中使用了self会警告可能存在保留环。再一次提醒,weak—strong dance可能是你最好的防御。一个执行UIPageViewController的实例方法setViewControllers:direction:animated:completion:的结束处理函数示例,编译器将发出警告,“Capturing‘self’ strongly in thisblock is likely to lead to a retain cycle” (侦测到此block中‘self’的强引用,可能导致保留环)。由于使用了weak—strong dance,你反而获得了self的弱引用。
nib加载和内存管理
在iOS中,当nib加载时,系统实例化后的顶级nib对象将被自动释放。所以如果有人没有保留它们,它们将很快像一团烟雾般消失。为防止这种情况的发生,有两种主要的策略:
保留与outlet图
形成一个内存管理图:每个顶级对象由另一个顶级对象保留(当然,不会形成保留环),File’s Owner作为内存管理图的开始。因此,File’s Owner代理有一个到顶层对象的outlet;当nib加载和该顶级对象被分配给实际nib所有者实例相应的实例变量(第7章)时,它就被保留下来。如果你安排的保留链正确,需要被保留的所有对象将都会被保留(图12—1)。这就是加载nib时你通常会使用的策略。
……
前言/序言
iOS编程(第三版) [Programming iOS 6] 电子书 下载 mobi epub pdf txt