第4版 Objective-C 程式设计


第4版 Objective-C 程式设计

文章插图
Objective-C 程式设计(第4版)【第4版 Objective-C 程式设计】《Objective-C 程式设计(第4版)》是2012年9月出版的图书,作者是史蒂芬·G·科昌 。
基本介绍书名:Objective-C 程式设计(第4版)
作者:史蒂芬·G·科昌
译者:林冀 范俊 朱奕欣
ISBN:978-7-121-18091-0
基本资料/ 2012年9月出版定价:89.00元 / 16开/ 512页内容简介本书详细介绍了Objective-C和苹果iOS、Mac平台面向对象程式编程的知识 。本书作者假设读者没有面向对象程式语言或者C语言(Objective-C基础)编程经验,因此,初学者和有经验的程式设计师都可以使用这本书学习Objective-C 。读者不需要先学习底层的C语言编程,就可以了解面向对象编程 。本书结合独特的学习方法,在每章都编写有大量的小程式例子和练习,使Objective-C程式设计适合于课堂教学和自学 。本书已经为iOS 5和Xcode 4.2中的重大变更做了全面更新,最大的改动是引入了自动引用计数(ARC),并详细说明了如何在Objective-C编程过程中使用ARC提升和简化记忆体管理 。Objective-C 2.0是Mac OS X系统和iPhone平台下的标準程式设计语言 。它基于C语言设计而成,是一种面向对象程式语言,功能非常强大,广泛用于OS X以及多种支持gcc编译器的作业系统,如LINUX、UNIX和Windows系统 。本书是一本权威的Objective-C 2.0参考书,详细介绍该语言的具体内容 。本书用丰富而详实的实例讲解了如何使用Objective-C,无需你有任何C语言或面向对象程式语言的经验 。在内容上,本书在上一版的基础上进行了更新和扩充,它基于Objective-C2.0 。本书不仅详细说明了如何充分利用Foundation框架的大量内置类库,还介绍了如何使用iPhone SDK开发基于iPhone和iPod Touch的套用 。这是一本Objective-C编程领域最畅销的书籍,内容涵盖Xcode 4.2和自动引用计数(ARC) 。作者简介Stephen Kochan是多本畅销书的作者或合着者,其中有关于C语言的,包括《Programming in C》(Sams,2004)、《Programming in ANSI C》(Sams,1994)和《Topics in C Programming》(Wiley,1991),也有关于UNIX的,包括《Exploring the UNIX System》(Sams,1992)和《Unix Shell Programming》(Sams,2003) 。从1984年Mac最初引进时,他就已经在Macintosh计算机上编程了,他编写的《Programming C for the Mac》是Apple Press Library的一部分 。2003年,Kochan编写了《Programming in Objective-C》(Sams,2003),之后编写了另一本与Mac有关的书籍《Befinning AppleScript》(Wiley,2004) 。名家推荐“这是我读过的最棒的程式设计类书籍 。如果想学习Objective-C,一定要购买这本书”——Calvin Wolcott“对于那些打算将Objective-C作为第一门程式设计语言的初学者来说,本书是非常好的学习资源,这样的书太缺乏了!”——Pat Hughes编辑推荐Objective-C 2.0是Mac OS X系统和iPhone平台下的标準程式设计语言 。它基于C语言设计而成,是一种面向对象程式语言,功能非常强大,广泛用于OS X以及多种支持gcc编译器的作业系统,如LINUX、UNIX和Windows系统 。本书是一本权威的Objective-C 2.0参考书,详细介绍该语言的具体内容 。本书用丰富而详实的实例讲解了如何使用Objective-C,无需你有任何C语言或面向对象程式语言的经验 。在内容上,本书在上一版的基础上进行了更新和扩充,它基于Objective-C2.0 。本书不仅详细说明了如何充分利用Foundation框架的大量内置类库,还介绍了如何使用iPhone SDK开发基于iPhone和iPod Touch的套用 。目 录1 引言 11.1 本书内容 21.2 本书组织方式 31.3 支持 51.4 致谢 61.5 第4版前言 72 Objective-C编程 92.1 编译并运行程式 92.1.1 使用Xcode 102.1.2 使用Terminal162.2 解释第一个程式 192.3 显示变数的值 232.4 小结 252.5 练习 263 类、对象和方法 293.1 到底什幺是对象 293.2 实例和方法 303.3 用于处理分数的Objective-C类 323.4 @interface部分 353.4.1 选择名称 353.4.3 类方法和实例方法 373.5 @implementation部分 393.6 program部分 413.7 实例变数的访问及数据封装 473.8 小结 513.9 练习 514 数据类型和表达式 534.1 数据类型和常量 534.1.1 int类型 534.1.2 float类型 544.1.3 char类型 544.1.4 限定词:long、long long、short、unsigned及signed 564.1.5 id类型 564.2 算术表达式 574.2.1 运算符的优先权 584.2.2 整数运算和一元负号运算符 604.2.3 模运算符 624.2.4 整型值和浮点值的相互转换 644.2.5 类型转换运算符 654.3 赋值运算符 664.4 Calculator类 674.5 练习 705 循环结构 735.1 for语句 745.1.1 键盘输入 81 5.1.2 嵌套的for循环 835.1.3 for循环的变体 855.2 while语句 865.3 do语句 905.4 break语句 925.5 continue语句 925.6 小结 935.7 练习 936 选择结构 956.1 if语句 956.1.1 if-else结构 1006.1.2 複合条件测试 1036.1.3 嵌套的if语句 1066.1.4 else if结构 1076.2 switch语句 1176.3 Boolean变数 1206.4 条件运算符 1256.5 练习 1277 类 1297.1 分离接口和实现档案 1297.2 合成存取方法 1347.3 使用点运算符访问属性 1367.4 具有多个参数的方法 1377.4.1 不带参数名的方法 1397.4.2 关于分数的操作 1407.5 局部变数 1427.5.1 方法的参数 1437.5.2 static关键字 1447.6 self关键字 1477.7 在方法中分配和返回对象 1487.8 练习 1518 继承 1538.1 一切从根类开始 1538.2 通过继承来扩展:添加新方法 1588.2.1 Point类和对象创建 1628.2.2 @class指令 1638.2.3 具有对象的类 1678.3 覆写方法 1718.4 抽象类 1758.5 练习 1769 多态、动态类型和动态绑定 1799.1 多态:相同的名称,不同的类 1799.2 动态绑定和id类型 1829.3 编译时和运行时检查 1849.4 id数据类型与静态类型 1859.5 有关类的问题 1879.6 使用@try处理异常 1929.7 练习 19410 变数和数据类型 19710.1 对象的初始化 19710.2 作用域回顾 20010.2.1 控制实例变数作用域的指令 20010.2.2 全局变数 20210.2.3 静态变数 20410.3 枚举数据类型 20710.4 typedef语句 21110.5 数据类型转换 21210.6 位运算符 21410.6.1 按位与运算符 21510.6.2 按位或运算符 21610.6.3 按位异或运算符 21710.6.4 一次求反运算符 21710.6.5 向左移位运算符 21910.6.6 向右移位运算符 21910.7 练习 22011 分类和协定 22311.1 分类 22311.2 类的扩展 22811.3 协定和代理 23011.3.1 代理 23311.3.2 非正式协定 233 11.4 合成对象 23411.5 练习 23612 预处理程式 23912.1 #define语句 23912.2 #import语句 24612.3 条件编译 24712.3.1 #ifdef、#endif、#else和#ifndef语句 24712.3.2 #if和#elif预处理程式语句 25012.3.3 #undef语句 25112.4 练习 25113 基本的C语言特性 25313.1 数组 25413.1.1 数组元素的初始化 25613.1.2 字元数组 25713.1.3 多维数组 25813.2 函式 26013.2.1 参数和局部变数 26213.2.2 函式的返回结果 26313.2.3 函式、方法和数组 26713.3 块(Blocks) 26813.4 结构 27213.4.1 结构的初始化 27513.4.2 结构中的结构 27613.4.3 关于结构的补充细节 27813.4.4 不要忘记面向对象编程思想 27913.5 指针 27913.5.1 指针和结构 28313.5.2 指针、方法和函式 28513.5.3 指针和数组 28613.5.4 指针运算 29713.5.5 指针和记忆体地址 29913.6 它们不是对象 29913.7 其他语言特性 30013.7.1 複合字面量 30013.7.2 goto语句 30013.7.3 空语句 30113.7.4 逗号运算符 30113.7.5 sizeof运算符 30213.7.6 命令行参数 30313.8 工作原理 30513.8.1 事实#1:实例变数存储在结构中 30513.8.2 事实#2:对象变数实际上是指针 30613.8.3 事实#3:方法是函式,而讯息表达式是函式调用 30613.8.4 事实#4:id类型是通用指针类型 30713.9 练习 30714 Foundation框架简介 30914.1 Foundation文档 30915 数字、字元串和集合 31315.1 数字对象 31315.2 字元串对象 31815.2.1 NSLog函式 31815.2.2 description方法 31915.2.3 可变对象与不可变对象 32015.2.4 可变字元串 32715.3 数组对象 33315.3.1 製作地址簿 33715.3.2 数组排序 35315.4 词典对象 36015.4.1 枚举词典 36115.5 集合对象 36315.5.1 NSIndexSet367 15.6 练习 37016 使用档案 37316.1 管理档案和目录:NSFileManager37416.1.1 使用NSData类 37916.1.2 使用目录 38016.1.3 枚举目录中的内容 38316.2 使用路径:NSPathUtilities.h 38516.2.1 常用的路径处理方法 38816.2.2 複製档案和使用NSProcessInfo类 39016.3 基本的档案操作:NSFileHandle 39416.4 NSURL类 39916.5 NSBundle类 40016.6 练习 40117 记忆体管理和自动引用计数 40317.1 自动垃圾收集 40517.2 手工管理记忆体计数 40617.2.1 对象引用和自动释放池 40717.3 事件循环和记忆体分配 40917.4 手工记忆体管理规则的总结 41117.5 自动引用计数(ARC) 41217.6 强变数 41217.7 弱变数 41317.8 @autoreleasepool块 41517.9 方法名和非ARC编译代码 41518 複製对象 41718.1 copy和mutableCopy方法 41818.2 浅複製与深複製 42018.3 实现<NSCopying>协定 42218.4 用设值方法和取值方法複製对象 42518.5 练习 42819 归档 42919.1 使用XML属性列表进行归档 42919.2 使用NSKeyedArchiver归档 43219.3 编码方法和解码方法 43319.4 使用NSData创建自定义档案 44019.5 使用归档程式複製对象 44419.6 练习 44520 Cocoa和Cocoa Touch简介 44720.1 框架层 44720.2 Cocoa Touch 44821 编写iOS应用程式 45121.1 iOS SDK 45121.2 第一个iPhone应用程式 45121.2.1 创建新的iPhone应用程式项目 45421.2.2 输入代码 45721.2.3 设计界面 46021.3 iPhone分数计算器 46621.3.1 启动新的Fraction_Calculator项目 46821.3.2 定义视图控制器 46821.3.3 Fraction类 47421.3.4 处理分数的Calculator类 47721.3.5 设计UI47921.4 小结 479 21.5 练习 481附录A 术语表 483附录B 地址簿示例原始码 495