具体描述
《Objective-C程序设计》是为在苹果iOS和OS X平台上,使用Objective-C语言和面向对象程序设计模式进行专业开发而编写的简洁、细致的入门读物。本书假设读者无面向对象程序语言或C语言编程经验,以保障初学者与有经验的程序员一样,可用本书迅速和有效地学习Objective-C。本书提供的学习方法独特,结合众多程序示例及章末练习,使得《Objective-C程序设计(第6版)》同时适合自学和课堂教学。第6版已全面更新,充分纳入Objective-C的新功能与技术,同时覆盖对新版Xcode、iOS和Mac OS X Mavericks的介绍。
作者简介
Stephen G. Kochan是多本畅销书的作者或合著者,其中有关于C语言的,包括Programming in C、Programming in ANSI C和Topics in C Programming,也有关于UNIX的,包括Exploring the UNIX System和UNIX Shell Programming。从1984年Mac最初面世时,他就已经在Macintosh计算机上编程,他编写的Programming C for the Mac是Apple Press Library的一部分。2003年,Kochan编写了Programming in Objective-C,之后编写了另一本与Mac有关的书籍Beginning AppleScript。
目录信息
1引言 1
第一部分Objective-C语言
2Objective-C编程 9
3类、对象和方法 29
4数据类型和表达式 53
5循环结构 73
6选择结构 95
7类 129
8继承 155
9多态、动态类型和动态绑定 181
10变量和数据类型 199
11分类和协议 223
12预处理程序 239
13基本的C语言特性 253
第二部分Foundation框架
14Foundation框架简介 311
15数字、字符串和集合 315
16使用文件 379
17内存管理和自动引用计数 409
18复制对象 423
19归档 435
第三部分Cocoa、Cocoa Touch与iOS的SDK
20Cocoa和Cocoa Touch简介 453
21编写iOS应用程序 457
附录A术语表 489
附录B地址簿示例源代码 501
目录
1引言 1
1.1 本书内容 2
1.2 本书组织方式 3
1.3 支持 5
1.4 致谢 6
1.5 第6版前言 7
第一部分Objective-C语言
2Objective-C编程 9
2.1 编译并运行程序 9
2.1.1 使用Xcode 10
2.1.2 使用Terminal 17
2.2 解释第一个程序 20
2.3 显示变量的值 24
2.4 小结 26
2.5 练习 27
3类、对象和方法 29
3.1 到底什么是对象 29
3.2 实例和方法 30
3.3 用于处理分数的Objective-C类 32
3.4 @interface部分 35
3.4.1 选择名称 35
3.4.2 类方法和实例方法 37
3.5 @implementation部分 39
3.6 program部分 41
3.7 实例变量的访问及数据封装 47
3.8 小结 51
3.9 练习 51
4数据类型和表达式 53
4.1 数据类型和常量 53
4.1.1 int类型 53
4.1.2 float类型 54
4.1.3 char类型 54
4.1.4 限定词:long、long long、short、unsigned及signed 55
4.1.5 id类型 56
4.2 算术表达式 57
4.2.1 运算符的优先级 57
4.2.2 整数运算和一元负号运算符 60
4.2.3 模运算符 62
4.2.4 整型值和浮点值的相互转换 63
4.2.5 类型转换运算符 65
4.3 赋值运算符 66
4.4 Calculator类 67
4.5 练习 70
5循环结构 73
5.1 for语句 74
5.1.1 键盘输入 81
5.1.2 嵌套的for循环 83
5.1.3 for循环的变体 85
5.2 while语句 86
5.3 do语句 90
5.4 break语句 92
5.5 continue语句 92
5.6 小结 93
5.7 练习 93
6选择结构 95
6.1 if语句 95
6.1.1 if-else结构 100
6.1.2 复合条件测试 103
6.1.3 嵌套的if语句 106
6.1.4 else if结构 107
6.2 switch语句 117
6.3 Boolean变量 120
6.4 条件运算符 125
6.5 练习 127
7类 129
7.1 分离接口和实现文件 129
7.2 合成存取方法 135
7.3 使用点运算符访问属性 137
7.4 具有多个参数的方法 139
7.4.1 不带参数名的方法 141
7.4.2 关于分数的操作 141
7.5 局部变量 145
7.5.1 方法的参数 146
7.5.2 static关键字 147
7.6 self关键字 150
7.7 在方法中分配和返回对象 151
7.7.1 扩展类的定义和接口文件 153
7.8 练习 153
8继承 155
8.1 一切从根类开始 155
8.1.1 找出正确的方法 159
8.2 通过继承来扩展:添加新方法 160
8.2.1 Point类和对象创建 164
8.2.2 @class指令 165
8.2.3 具有对象的类 169
8.3 覆写方法 173
8.3.1 选择哪种方法 174
8.4 抽象类 177
8.5 练习 178
9多态、动态类型和动态绑定 181
9.1 多态:相同的名称,不同的类 181
9.2 动态绑定和id类型 184
9.3 编译时和运行时检查 186
9.4 id数据类型与静态类型 187
9.4.1 动态类型的参数和返回类型 188
9.5 有关类的问题 189
9.6 使用@try处理异常 194
9.7 练习 196
10变量和数据类型 199
10.1 对象的初始化 199
10.2 作用域回顾 203
10.2.1 关于属性、存取方法和实例变量 203
10.2.2 全局变量 204
10.2.3 静态变量 206
10.3 枚举数据类型 208
10.4 typedef语句 212
10.5 数据类型转换 213
10.5.1 转换规则 213
10.6 位运算符 215
10.6.1 按位与运算符 216
10.6.2 按位或运算符 217
10.6.3 按位异或运算符 218
10.6.4 一次求反运算符 218
10.6.5 向左移位运算符 220
10.6.6 向右移位运算符 221
10.7 练习 221
11分类和协议 223
11.1 分类 223
11.2 类的扩展 228
11.2.1 关于分类的注意事项 229
11.3 协议和代理 230
11.3.1 代理 233
11.3.2 非正式协议 234
11.4 合成对象 235
11.5 练习 236
12预处理程序 239
12.1 #define语句 239
12.1.1 更高级的定义类型 241
12.2 #import语句 246
12.3 条件编译 247
12.3.1 #ifdef、#endif、#else和#ifndef语句 248
12.3.2 #if和#elif预处理程序语句 250
12.3.3 #undef语句 251
12.4 练习 251
13基本的C语言特性 253
13.1 数组 254
13.1.1 数组元素的初始化 256
13.1.2 字符数组 257
13.1.3 多维数组 258
13.2 函数 260
13.2.1 参数和局部变量 262
13.2.2 函数的返回结果 263
13.2.3 函数、方法和数组 267
13.3 块(Blocks) 268
13.4 结构 272
13.4.1 结构的初始化 275
13.4.2 结构中的结构 276
13.4.3 关于结构的补充细节 278
13.4.4 不要忘记面向对象编程思想 279
13.5 指针 279
13.5.1 指针和结构 283
13.5.2 指针、方法和函数 285
13.5.3 指针和数组 287
13.5.4 指针运算 297
13.5.5 指针和内存地址 299
13.6 它们不是对象 299
13.7 其他语言特性 300
13.7.1 复合字面量 300
13.7.2 goto语句 301
13.7.3 空语句 301
13.7.4 逗号运算符 301
13.7.5 sizeof运算符 302
13.7.6 命令行参数 303
13.8 工作原理 305
13.8.1 事实#1:实例变量存储在结构中 306
13.8.2 事实#2:对象变量实际上是指针 306
13.8.3 事实#3:方法是函数,而消息表达式是函数调用 307
13.8.4 事实#4:id类型是通用指针类型 307
13.9 练习 307
第二部分Foundation框架
14Foundation框架简介 311
14.1 Foundation文档 311
15数字、字符串和集合 315
15.1 数字对象 315
15.2 字符串对象 321
15.2.1 NSLog函数 321
15.2.2 description方法 322
15.2.3 可变对象与不可变对象 323
15.2.4 可变字符串 330
15.3 数组对象 336
15.3.1 制作地址簿 341
15.3.2 数组排序 358
15.4 词典对象 364
15.4.1 枚举词典 366
15.5 集合对象 369
15.5.1 NSIndexSet 373
15.6 练习 375
16使用文件 379
16.1 管理文件和目录:NSFileManager 380
16.1.1 使用NSData类 385
16.1.2 使用目录 386
16.1.3 枚举目录中的内容 389
16.2 使用路径:NSPathUtilities.h 391
16.2.1 常用的路径处理方法 394
16.2.2 复制文件和使用NSProcessInfo类 396
16.3 基本的文件操作:NSFileHandle 400
16.4 NSURL类 405
16.5 NSBundle类 406
16.6 练习 407
17内存管理和自动引用计数 409
17.1 自动垃圾收集 411
17.2 手工管理内存计数 411
17.2.1 对象引用和自动释放池 412
17.3 事件循环和内存分配 414
17.4 手工内存管理规则的总结 416
17.5 自动引用计数(ARC) 417
17.6 强变量 418
17.7 弱变量 419
17.8 @autoreleasepool块 420
17.9 方法名和非ARC编译代码 420
18复制对象 423
18.1 copy和mutableCopy方法 424
18.2 浅复制与深复制 426
18.3 实现<NSCopying>协议 428
18.4 用设值方法和取值方法复制对象 431
18.5 练习 433
19归档 435
19.1 使用XML属性列表进行归档 435
19.2 使用NSKeyedArchiver归档 437
19.3 编码方法和解码方法 439
19.4 使用NSData创建自定义档案 446
19.5 使用归档程序复制对象 450
19.6 练习 451
第三部分Cocoa、Cocoa Touch与iOS的SDK
20Cocoa和Cocoa Touch简介 453
20.1 框架层 453
20.2 Cocoa Touch 454
21编写iOS应用程序 457
21.1 iOS SDK 457
21.2 第一个iPhone应用程序 457
21.2.1 创建新的iPhone应用程序项目 460
21.2.2 输入代码 463
21.2.3 设计界面 466
21.3 iPhone分数计算器 474
21.3.1 启动新的Fraction_Calculator项目 475
21.3.2 定义视图控制器 476
21.3.3 Fraction类 481
21.3.4 处理分数的Calculator类 485
21.3.5 设计UI 486
21.4 小结 487
21.5 练习 488
附录A术语表 489
附录B地址簿示例源代码 501
· · · · · · (收起)
读后感
前几章,看的挺好的,慢慢的感觉翻译的有点云里雾里。浪费俺们的钱啊!我还是果断看原版吧!原版的书好像已经有针对Xcode5的版本了,翻译的水平还是有的,只是不用心。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。嫌我评论短。
如果你对objective-c没有一点了解,也没有一点C的经验,那么还是建议先看看这本书,然后在看《objective-c基础教程》和《iphone开发基础教程》否则会看起来很吃力的 讲的很详细,不过有翻译上的不准确,不过还好了,不影响大局 不过有时候会很困惑,困惑翻译的语句怎么那么多...
我并不是一个Mac程序员, 只是在工作中有时候需要用到Objective-C. 这本书会让已经熟悉C/C++/Java的开发人员快速的熟悉Objective-C. 对于初学者, 或者是最近对iPhone开发感兴趣的朋友, 这本书也非常不错. 不过, 如果认真的了解Objective-C这门语言, 那请阅读Apple发布的<<Th...
前几章,看的挺好的,慢慢的感觉翻译的有点云里雾里。浪费俺们的钱啊!我还是果断看原版吧!原版的书好像已经有针对Xcode5的版本了,翻译的水平还是有的,只是不用心。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。嫌我评论短。
前几章,看的挺好的,慢慢的感觉翻译的有点云里雾里。浪费俺们的钱啊!我还是果断看原版吧!原版的书好像已经有针对Xcode5的版本了,翻译的水平还是有的,只是不用心。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。嫌我评论短。
用户评价
在我看来,一本优秀的编程书籍,不仅仅是知识的传递,更是一种思维的引导。这本书在这方面做得非常成功。它不仅仅教会我如何去写Objective-C的代码,更重要的是,它教会我如何去思考,如何去设计,如何去构建一个健壮、高效的应用程序。书中的很多章节,都深入剖析了软件开发的原则和最佳实践,这对于我形成良好的编程习惯非常有帮助。我尤其欣赏作者在处理一些复杂问题时所展现出的条理性和逻辑性,这让我学会了如何分解问题,如何系统地解决问题。而且,书中对一些高级话题的讨论,比如性能优化、安全性等方面,也为我提供了宝贵的参考。这本书不仅仅是一本技术手册,更像是一本编程哲学,它引导我从更高的维度去审视编程,去追求卓越。
对于有一定Objective-C基础的开发者来说,想要进一步提升自己的技术水平,找到一本能够带来突破的书籍是关键。这本书在这方面也做得相当到位。它深入探讨了一些Objective-C的核心机制,比如内存管理、多线程、Objective-C Runtime等,这些都是提升开发效率和优化程序性能的必备知识。作者并没有停留在表面的讲解,而是通过详细的剖析和精辟的论述,让我对这些概念有了更深刻的认识。书中引用的实际案例,更是让我能够将理论知识与实际开发紧密结合,学会如何在真实的项目中应用这些高级技术。我特别喜欢它对一些设计模式的讲解,以及如何运用Objective-C的特性来实现这些模式,这对于我构建可维护、可扩展的代码非常有启发。这本书为我打开了一扇新的大门,让我看到了Objective-C更广阔的潜力。
我是一位iOS开发者,Objective-C一直是我开发的首选语言。在我的职业生涯中,我阅读过不少关于Objective-C的书籍,而这本书,绝对是我近期读到的最让我印象深刻的一本。它的内容非常全面,几乎涵盖了Objective-C开发中的所有重要方面,从基础语法到高级框架,再到实际应用,都进行了深入的探讨。我尤其欣赏书中对一些API的详细介绍和使用示例,这让我能够快速地将学到的知识应用到我的实际项目中。而且,这本书的更新速度也相当快,能够及时跟进Objective-C语言和iOS开发生态的最新变化,这对于保持技术的前沿性非常重要。阅读这本书,就像是在与一位经验丰富的导师对话,他不仅传授知识,更分享经验,让我能够少走弯路,快速成长。
对于初学者来说,一本好的入门书籍至关重要。我之前尝试过一些Objective-C的书籍,但总觉得它们要么过于晦涩难懂,要么过于浅尝辄止,无法真正建立起我学习的信心。而这本书,在这一点上做得非常出色。它以一种非常友好的方式,循序渐进地引导我认识Objective-C的方方面面。那些复杂的概念,在作者的笔下,变得清晰易懂,那些抽象的语法,也通过生动的例子被具象化。我尤其欣赏的是,它并没有一味地灌输知识,而是鼓励读者去思考,去实践。书中的练习题设计得非常巧妙,既能巩固我所学的知识,又能激发我探索更深层次的理解。而且,它对一些常见问题的解答,也相当到位,仿佛能预判到我学习过程中会遇到的困惑,并提前给出解决方案。这让我感觉,这本书不仅仅是一本书,更像是一位经验丰富的导师,耐心地陪伴我走过学习的每一个阶段。
这本书的封面设计,可以说是非常有吸引力的。深邃的蓝色背景,搭配着略显神秘的Objective-C图标,给人一种专业、严谨的视觉感受。我第一次在书店看到它的时候,就被它的气质所吸引,仿佛预示着这是一本能够带领我深入探索Objective-C奥秘的宝典。拿到手里,纸张的质感也相当不错,厚实而不失柔韧,印刷清晰,字体大小适中,即使长时间阅读也不会感到眼睛疲劳。翻开目录,内容安排得井井有条,从基础概念的铺垫,到高级特性的讲解,再到实际项目的演练,每一个环节都经过精心设计,仿佛在为读者量身打造一条学习路径。我尤其喜欢它在章节开头设置的学习目标,这能让我对本章的内容有一个清晰的认识,也更能激发我学习的动力。而且,书中大量精美的插图和代码示例,让枯燥的技术知识变得生动有趣,也更容易理解和消化。我迫不及待地想翻阅其中的内容,去感受它带给我的知识的盛宴。
自学时看的这本书整理的头绪,比较系统,不错 适合刚入门的iOS开发者
还行吧,涵盖的面比较全,但是也不深入
上手 iOS编程 就iOS 咱不碰Mac OS ^ ^
书上是Xcode 5,自己用Xcode 9,开头就对不上。为啥不更新呢。
基础。像一位不厌其烦的老师。并且还穿插教你一些编程的哲学。ths。