Objective-C编程.pdf

Objective-C编程.pdf
 

书籍描述

编辑推荐
《Objective-C编程》英文版自2011年出版以来,一直蝉联美国亚马逊Objective-C编程类图书榜首。

作者简介
作者:(美国)Aaron Hillegass 译者:夏伟频

Aaron Hillegass曾就职于NeXT公司和苹果公司,他有近20年的Objective-C编程、Cocoa编程和iOS编程教学经验。
Aaron是《Cocoa编程》的作者,并与他人合著了《iOS编程》。这两本畅销书获得了来自全球各地读者的好评。
2001年,Aaron创办了Big Nerd Ranch公司,开始提供强化式编程课程,为学员提供集中的、没有干扰的学习环境。

目录
第1部分 入门 1
第1章 读者与本书 3
1.1 C与Objective-C 3
1.2 主要内容及阅读方式 4
1.3 程序员要走的道路 4
第2章 第一个程序 7
2.1 安装Apple开发工具软件 7
2.2 Xcode入门 7
2.3 从哪里开始编写代码 9
2.4 如何运行程序 13
2.5 程序是如何产生的 14
2.6 不要半途而废 15
第2部分 如何编程 17
第3章 变量与类型 19
3.1 类型 19
3.2 使用变量的程序 20
3.3 练习 22
第4章 if和else 23
4.1 布尔变量 24
4.2 else if 25
4.3 深入学习:条件运算符(三元运算符) 25
4.4 练习 26
第5章 函数 27
5.1 应该在何时使用函数 27
5.2 如何编写并使用函数 27
5.3 函数间是如何协同工作的 30
5.4 局部变量、帧和栈 32
5.5 递归 34
5.6 通过调试器查看帧 35
5.7 return 37
5.8 全局变量与静态变量 39
5.9 练习 40
第6章 数字 41
6.1 printf() 41
6.2 整数 42
6.3 浮点数 46
6.4 练习 47
第7章 循环 49
7.1 while循环 49
7.2 for循环 50
7.3 break 51
7.4 continue 52
7.5 do-while循环 53
7.6 练习 54
第8章 地址与指针 55
8.1 获取地址 55
8.2 用指针保存地址 56
8.3 通过地址访问数据 57
8.4 不同类型的数据所占用的字节大小 57
8.5 NULL 58
8.6 指针声明的代码规范 59
8.7 练习 59
第9章 通过引用传递 61
9.1 编写通过引用传递参数的函数 62
9.2 不要对NULL取值 64
第10章 结构 65
10.1 练习 66
第11章 堆 69
第3部分 Objective-C与Foundation 73
第12章 对象 75
12.1 创建并使用对象 75
12.2 消息详解 77
12.3 内存中的对象 79
12.4 id 79
12.5 练习 80
第13章 再谈消息 81
13.1 消息的嵌套发送 81
13.2 多个实参 82
13.3 向nil发送消息 82
13.4 练习 83
第14章 NSString 85
14.1 练习 86
第15章 NSArray 87
15.1 NSMutableArray 89
15.2 练习 90
第16章 开发文档 93
16.1 参考页 94
16.2 快速帮助 96
16.3 其他文档功能和开发资源 98
第17章 第一个自定义类 101
17.1 存取方法 103
17.2 用点号调用存取方法 104
17.2 属性 105
17.4 self 106
17.5 多个实现文件 106
17.6 练习 106
第18章 继承 109
18.1 覆盖方法 112
18.2 super 113
18.3 练习 113
第19章 对象实例变量 115
19.1 对象所有权与ARC 117
19.2 练习 123
第20章 避免内存泄露 125
20.1 Retain循环 127
20.2 弱引用 129
20.3 弱引用的自动置零特性 130
20.4 深入学习:手动引用计数和ARC历史 131
第21章 Collection类 135
21.1 NSArray/NSMutableArray 135
21.2 NSSet/NSMutableSet 138
21.3 NSDictionary/NSMutableDictionary 140
21.4 C语言基本类型 142
21.5 Collection对象与nil 142
21.6 练习 143
第22章 常量 145
22.1 预处理指令 145
22.2 #include与#import 146
22.3 #define 146
22.4 全局变量 147
22.5 比较#define与全局变量 149
第23章 通过NSString和NSData将数据写入文件 151
23.1 将NSString对象写入文件 151
23.2 NSError 152
23.3 通过NSString读取文件 153
23.4 将NSData对象所保存的数据写入文件 154
23.5 从文件读取数据并存入NSData对象 155
第24章 回调 157
24.1 目标-动作对 157
24.2 辅助对象 160
24.3 通告 163
24.4 如何选择 164
24.5 回调与对象所有权 164
第25章 协议 167
第26章 Property List格式 171
26.1 练习 173
第4部分 由事件驱动的应用 175
第27章 第一个iOS应用 177
27.1 创建iTahDoodle 177
27.2 BNRAppDelegate 179
27.3 添加C语言辅助函数 180
27.4 iTahDoodle中的对象 181
27.5 Model-View-Controller 182
27.6 应用委托对象 183
27.7 设置视图 184
27.8 为UITableView对象提供数据 186
27.9 添加新任务 189
27.10 深入学习:main()的作用 190
第28章 第一个Cocoa应用 191
28.1 编辑BNRDocument.h 192
28.2 Interface Builder初探 193
28.3 编辑BNRDocument.xib 194
28.4 创建关联 198
28.5 再探MVC 202
28.6 编辑BNRDocument.m 202
28.7 练习 204
第5部分 Objective-C高级主题 205
第29章 init 207
29.1 编写init方法 207
29.2 实现基本的init方法 208
29.3 在init中使用存取方法 209
29.4 带实参的init方法 210
29.5 禁用init方法 215
第30章 属性 217
30.1 属性的特性 218
30.2 KVC 221
第31章 范畴 225
第32章 Block对象 227
32.1 定义Block对象 227
32.2 使用Block对象 228
32.3 typedef 233
32.4 返回值 233
32.5 内存管理 234
32.6 基于Block的编程是大势所趋 235
32.7 练习 235
第6部分 C语言高级主题 237
第33章 位运算 239
33.1 按位或 240
33.2 按位与 241
33.3 其他位运算符 242
33.4 用enum定义位掩码 245
33.5 占用更多字节的整数类型 245
33.6 练习 245
第34章 C字符串 247
34.1 char 247
34.2 char * 248
34.3 string literal 250
34.4 C字符串和NSString对象的相互转换 251
34.5 练习 252
第35章 C数组 253
第36章 命令行参数 257
第37章 switch语句 261
结束语 263
广告时间 263
索引 265

序言
翻译说明
本书的术语、词汇翻译优先使用Apple的正式译法,参考了Apple中国官方网站、iOS设备中文版使用手册、中文开发文档、中文软件系统界面的译法。有些翻译无固定译法可循,特做如下说明。
本书将iOS 4.0加入的语言特性Blocks翻译为“Block对象”,因为Blocks是简称,其正式的名称为Block Object。
Category翻译为“范畴”。“范畴”是Apple的官方开发文档选用的译法。
Override有多种译法,本书译为“覆盖”。
列出了详细的中英文术语对照表,并尽可能提供译法的出处。

文摘
第1章
读者与本书
You and This Book
想开发iOS或Mac OS X应用,却苦于编程经验寥寥?甚至一行代码也没写过?也许已经有人向读者推荐过其他书籍(《iOS编程》和《Cocoa编程》)。但是,这几本书是为有编程经验的读者准备的。那么是否还有其他选择?
在类似的书籍中,也许读者应该选读本书。为什么?因为本书的作者长期从事iOS和Mac应用开发方面的教学工作,所以很清楚读者在初学阶段要了解哪些知识。此外,作者还做了大量的工作,去芜存菁,使本书的内容更精炼。
本书的“教学方法”也有些特别。作者不是简单地向读者传授Objective-C的语法知识,而是向读者揭示编程是怎么回事,并介绍资深程序员在编程时是如何思考的。
有鉴于此,本书开篇就会涉及多个有分量的概念,因此读者读起来不会很轻松。此外,几乎每个概念都附有实验示例。这种“先学习概念,然后马上动手练习的组合”是学习编程的最佳方法。
1.1 C与Objective-C
C and Objective-C
运行程序时,计算机会将相应的文件从文件系统拷入内存(RAM),并执行其中的指令。因为这些指令难以理解,所以人们通过某种编程语言来编写计算机程序。最底层的编程语言是汇编语言(assembly code)。使用汇编语言时,需要描述CPU(计算机的大脑)必须执行的每一个步骤。然后通过某种汇编程序(assembler)将这些代码转成机器码(machine code,计算机的“母语”)。
汇编语言冗长难懂,而且不同的CPU所用的汇编语言也不同(例如,最新的iMac的“大脑”和旧的PowerBook的“大脑”就有很大的不同)。也就是说,为了能在不同类型的计算机上运行某个程序,就要重写汇编代码。
为了能够方便地移植代码以适应不同类型的计算机,工程师们开发出了高级语言(high-level language)。使用高级语言时,程序员可以不用考虑CPU类型,使用统一的指令即可。编译器(compiler,也是一种程序)会将用高级语言写成的代码转化成高度优化的、针对某种CPU的机器码。C语言就是高级语言。程序员可以用C语言编写程序,然后通过C编译器将C代码转成机器码。
C语言诞生于20世纪70年代初期,由AT&T的工程师开发。早期的Unix操作系统(Mac OS X和Linux都源自Unix)都是用C语言编写的,并配合少量的汇编代码以处理底层操作。而Windows操作系统大部分也是用C语言编写的。
Objective-C语言以C语言为基础,加入了对面向对象编程(object-oriented programming)的支持。在Apple的iOS和Mac OS X操作系统上运行的原生应用,都要用Objective-C语言编写。
1.2 主要内容及阅读方式
How this book works
通过阅读本书,读者将对C语言和Objective-C语言有一个足够的了解,以便能够开始学习Mac应用或iOS应用的开发。
为什么要先学习C语言?这是因为要成为一名好的Objective-C程序员,就要对C语言有深入的理解。另外,很多看似复杂的Objective-C问题,其实都源自C语言中的简单概念。本书会先通过C语言介绍某个概念,然后引导读者掌握Objective-C中的等价概念。
本书的初衷是要读者在阅读的同时上机实验。先读懂概念,然后上机实验,验证概念。这些实验是必需的,读者要完成这些实验才能真正读懂本书。学习编程的最佳途径是输入代码、查错、修正代码并最终熟悉某种语言的语法模式。仅仅靠阅读代码并在理论上理解概念是不够的,也无助于编程技能的提升。
如果读者想要做更多的练习,则可以参考每章结尾的“练习”部分。这些练习可以帮助读者磨练技巧,并对之前所学的知识更有自信。强烈建议读者尽可能多地完成这些练习。
此外,部分章节的结尾处还有“深入学习”部分,会针对相应章节的内容作更深入的介绍。读者可以根据自身情况和兴趣选读这部分内容。希望这部分内容能对读者有所帮助。
如果读者会盲打,那么无论是阅读本书还是编写程序都会轻松很多。盲打除了能提高输入速度,还能让读者在输入内容时看着屏幕或书,而不是键盘。这样,要发现输入错误也会容易很多。盲打是一项可受用终身的技能。
1.3 程序员要走的道路
How the life of a programmer works
读者会阅读本书,说明您已经决意成为一名程序员。那么读者须要知道等待自己的是一条怎样的道路。
程序员所要走的道路是没有终点的,要不停地学习新知识,这样才能适应不断变化的IT行业。这里的“学习新知识”其实是“和自己不懂的东西作斗争”的婉转说法。因为现在的软件都太复杂了,所以即使是程序员熟悉的技术,有时也许会要花一整天的时间才能弄清楚某个问题出在哪里。
编程是困难的。很多专业程序员习惯了不间断地解决难题,日复一日,不让挫败感击垮自己。这也是读者应该学会的一项技能。如果读者对“程序员要走的是一条怎样的道路”感兴趣,并想了解更多关于现代软件项目的信息,本书作者力荐由Scott Rosenberg撰写的《Dreaming in Code》一书。
下面进入正题,编写第一个程序。

内容简介
《Objective-C编程》讲述Objective-C编程语言和基本的iOS/Mac开发知识。作者首先从基本的编程概念讲起(变量、条件语句、循环结构等),接着用浅显易懂的语言讲解Objective-C和Foundation的知识,包括Objective-C的基本语法、Foundation常用类、内存管理、常用设计模式等,最后手把手教读者编写完整的、基于事件驱动的iOS/Mac应用。书中还介绍了Objetive-C的高级内容,包括属性、范畴和Block对象等知识。全书篇幅精炼,内容清晰,适合无编程经验的读者入门学习。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多