具体描述
本书是Objective-C领域的经典著作,对Objective-C进行了系统而全面的阐述,权威性毋庸置疑。全书共分为四大部分:第一部分全面讲解了Objective-C语言的基础知识,包括类、对象、方法、数据类型、表达式、程序结构、继承、多态、动态类型和动态绑定、函数、数组、结构和指针等;第二部分详细阐述了Foundation框架,涵盖数字、字符串、集合、文件操作、内存管理、对象复制和归档等重要内容;第三部分简要介绍了 Cocoa和iPhone SDK;第四部分是附录,主要列出了Objective-C的快速参考。.
本书结构合理、内容翔实,简单易学,既适合程序设计初学者和所有程序员阅读,也可作为程序设计语言课题的入门教材。
作者简介
科施恩,是多本畅销书的作者或合著者,其中有关于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的一部分。
目录信息
作者简介
技术审校人员简介
第1章 前言
1.1 本书的内容
1.2 本书的组织方式
1.3 致谢
第1部分 objective-c语言
第2章 objective-c程序设计
2.1 编译并运行程序
2.1.1 使用xcode
2.1.2 使用terminal
2.2 解释第一个程序
2.3 显示变量的值
2.4 小结
2.5 练习
第3章 类、对象和方法
3.1 到底什么是对象
3.2 实例和方法
3.3 用于处理分数的objective-c类
.3.4 @interface部分
3.4.1 选择名称
3.4.2 实例变量
3.4.3 类和实例方法
3.5 @implementation部分
3.6 program部分
3.7 实例变量的访问以及数据封装
3.8 小结
3.9 练习
第4章 数据类型和表达式
4.1 数据类型和常量
4.1.1 int类型
4.1.2 float类型
4.1.3 double类型
4.1.4 char类型
4.1.5 限定词:long、long long、short、unsigned及signed
4.1.6 id类型
4.2 算术表达式
4.2.1 运算符的优先级
4.2.2 整数运算和一元负号运算符
4.2.3 模运算符
4.2.4 整型值和浮点值的相互转换
4.2.5 类型转换运算符
4.3 赋值运算符
4.4 计算器类
4.5 位运算符
4.5.1 按位与运算符
4.5.2 按位或运算符
4.5.3 按位异或运算符
4.5.4 一次求反运算符
4.5.5 向左移位运算符
4.5.6 向右移位运算符
4.6 类型:_bool、_complex和_imaginary
4.7 练习
第5章 循环结构
5.1 for语句
5.1.1 键盘输入
5.1.2 嵌套的for循环
5.1.3 for循环的变形
5.2 while语句
5.3 do语句
5.4 break语句
5.5 continue语句
5.6 小结
5.7 练习
第6章 选择结构
6.1 if语句
6.1.1 if-else结构
6.1.2 复合条件测试
6.1.3 嵌套的if语句
6.1.4 else if结构
6.2 switch语句
6.3 boolean变量
6.4 条件运算符
6.5 练习
第7章 类
7.1 分离接口和实现文件
7.2 合成存取器方法
7.3 使用点运算符访问属性
7.4 具有多个参数的方法
7.4.1 不带参数名的方法
7.4.2 关于分数的操作
7.5 局部变量
7.5.1 方法的参数
7.5.2 static关键字
7.6 self关键字
7.7 在方法中分配和返回对象
7.8 练习..
第8章 继承
8.1 一切从根类开始
8.2 通过继承扩展—添加新方法
8.2.1 point类和内存分配
8.2.2 @class指令
8.2.3 具有对象的类
8.3 重载方法
8.3.1 择哪个方法
8.3.2 重载dealloc方法和关键字super
8.4 通过继承扩展:添加新的实例变量
8.5 抽象类
8.6 练习
第9章 多态、动态类型和动态绑定
9.1 多态:相同的名称,不同的类
9.2 动态绑定和id类型
9.3 编译时和运行时检查
9.4 id数据类型与静态类型
9.5 有关类的问题
9.6 使用@try处理异常
9.7 练习
第10章 变量和数据类型
10.1 类的初始化
10.2 作用域回顾
10.2.1 控制实例变量作用域的指令
10.2.2 外部变量
10.2.3 静态变量
10.3 存储类说明符
10.3.1 auto
10.3.2 const
10.3.3 volatile
10.4 枚举数据类型
10.5 typedef语句
10.6 数据类型转换
10.6.1 转换规则
10.6.2 符号扩展
10.7 练习
第11章 分类和协议
11.1 分类
11.2 协议
11.3 合成对象
11.4 练习
第12章 预处理程序
12.1 #define语句
12.1.1 更高级的定义类型
12.1.2 #运算符
12.1.3 ##运算符
12.2 #import语句
12.3 条件编译
12.3.1 #ifdef、#endif、#else和#ifndef语句
12.3.2 #if和#elif预处理程序语句
12.3.3 #undef语句
12.4 练习
第13章 基本的c语言特性
13.1 数组
13.1.1 数组元素的初始化
13.1.2 字符数组
13.1.3 多维数组
13.2 函数
13.2.1 参数和局部变量
13.2.2 函数的返回结果
13.2.3 函数、方法和数组
13.3 结构
13.3.1 结构的初始化
13.3.2 结构数组
13.3.3 结构中的结构
13.3.4 关于结构的补充细节
13.3.5 不要忘记面向对象编程思想
13.4 指针
13.4.1 指针和结构
13.4.2 指针、方法和函数
13.4.3 指针和数组
13.4.4 指针运算
13.4.5 指针和内存地址
13.5 联合
13.6 它们不是对象
13.7 其他语言特性
13.7.1 compound literal
13.7.2 goto语句
13.7.3 空语句
13.7.4 逗号运算符
13.7.5 sizeof运算符
13.7.6 命令行参数
13.8 工作原理
事实#1:实例变量存储在结构中
事实#2:对象变量实际上是指针
事实#3:方法是函数,而消息表达式是
函数调用
事实#4:id类型是通用指针类型
13.9 练习
第二部分 foundation框架
第14章 foundation框架简介
第15章 数字、字符串和集合
15.1 数字对象
15.2 字符串对象
15.2.1 nslog函数
15.2.2 可变对象与不可变对象
15.2.3 可变字符串
15.2.4 所有对象到哪里去了
15.3 数组对象
15.4 同步addresscard方法
15.4.1 快速枚举
15.4.2 数组排序
15.5 词典对象
15.6 集合对象
15.7 练习
第16章 使用文件
16.1 管理文件和目录:nsfilemanager
16.1.1 使用nsdata类
16.1.2 使用目录
16.1.3 枚举目录中的内容
16.2 使用路径:nspathutilities.h
16.2.1 常用的路径处理方法
16.2.2 复制文件和使用nsprocessinfo类
16.3 基本的文件操作:nsfilehandle
16.4 练习
第17章 内存管理
17.1 自动释放池
17.2 引用计数
17.2.1 引用计数和字符串
17.2.2 引用计数与实例变量
17.3 自动释放池示例
17.4 内存管理规则摘要
17.5 垃圾回收
17.6 练习
第18章 复制对象
18.1 copy和mutablecopy方法
18.2 浅复制与深复制
18.3 实现[nscopying]协议
18.4 用赋值方法和取值方法复制对象
18.5 练习
第19章 归档
19.1 使用xml属性列表进行归档
19.2 使用nskeyedarchiver归档
19.3 编码方法和解码方法
19.4 使用nsdata创建自定义档案
19.5 使用归档程序复制对象
19.6 练习
第三部分 cocoa和iphone sdk
第20章 cocoa简介
20.1 框架层
20.2 接触cocoa
第21章 编写iphone应用程序
21.1 iphone sdk
21.2 第一个iphone应用程序
21.2.1 创建新的iphone应用程序项目
21.2.2 输入代码
21.2.3 设计界面
21.3 iphone分数计算器
21.3.1 启动新的fraction_calculator项目
21.3.2 定义视图控制器
21.3.3 fraction类
21.3.4 处理分数的calculator类
21.3.5 设计ui
21.4 小结
21.5 练习
第四部分 附录
附录a 术语表
附录b objective-c 2.0语言概览
附录c 地址簿源代码
附录d 资源
· · · · · · (收起)
读后感
求课后答案! ,不知道讲的不清楚还是翻译不行...总之看到我很头晕,估计我太菜了吧.................... 引用来自“lovdin”的答案 我一般不怎么评论,一旦评论就没什么好事。 看了OSChina的活动决定买这本来学习objective-c,看了大概一星期,来这里说说自己的一些想...
我并不是一个Mac程序员, 只是在工作中有时候需要用到Objective-C. 这本书会让已经熟悉C/C++/Java的开发人员快速的熟悉Objective-C. 对于初学者, 或者是最近对iPhone开发感兴趣的朋友, 这本书也非常不错. 不过, 如果认真的了解Objective-C这门语言, 那请阅读Apple发布的<<Th...
求课后答案! ,不知道讲的不清楚还是翻译不行...总之看到我很头晕,估计我太菜了吧.................... 引用来自“lovdin”的答案 我一般不怎么评论,一旦评论就没什么好事。 看了OSChina的活动决定买这本来学习objective-c,看了大概一星期,来这里说说自己的一些想...
作者写书时面向的读者是完全不懂编程的人, 完全可以作为编程专业的第一门课程的教科书。 里面讲解的都是语言的基础,对于语言的类库方面涉及的不多, 如果你要做实际开发,看这本书是不够的, 书的最后面有一些好用的常用特性讲解也很实用
很喜欢这本书. 内容很完整,也从最基本的循环,数组,指针讲起. 能抓住程序脉络,以示例讲解为主,引出基本概念,不废话。 很适合初学者. 从头过了一遍书,objective-C基本知识点都覆盖到了。 之前看过objective-C,但有些东西还是需要多次体会和理解的, 这本书不错,一直是iOS开...
用户评价
坦白说,这本书的深度着实让我这个“老手”都感到有些汗颜,它绝不是那种面向入门小白、浅尝辄止的“速成手册”。我特别留意了其中关于内存管理那几章,原以为自己对ARC(自动引用计数)已经了如指掌,但书里关于“循环引用”在不同场景下(比如block捕获self的陷阱、代理对象的设计)的具体剖析,简直是教科书级别的。作者显然在实际工程中踩过无数的坑,他用一种近乎苛刻的严谨态度,把那些看似微不足道的细节也拎出来进行深挖。比如,书中花了相当篇幅讨论了`weak`和`unsafe_unretained`的区别,并结合底层实现解释了为什么在某些极端情况下,后者可能比前者更“安全”(或者说,更符合特定场景的预期)。这种对细节的执着,让我意识到,在系统级编程中,任何一个被忽视的“小点”都可能成为未来崩溃的导火索。这本书的阅读过程,更像是一场漫长的“排雷行动”,每攻克一个难点,我的自信心就膨胀一分。它要求读者投入大量的时间去消化和思考,不适合那种想“快速上手”的读者,它更像是给那些真正想把OC学到极致的开发者准备的“武功秘籍”,每一招每一式都蕴含着深厚的功力。
在语言风格上,这本书有一种独特的、略带英式幽默的严谨感,虽然是技术书籍,但读起来并不枯燥乏味。作者似乎非常擅长“反向教学”,他会先抛出一个看似合理的错误用法或设计陷阱,让你自己去思考为什么它会导致问题,然后再给出官方或最优的解决方案。这种引导式的提问方式,极大地锻炼了读者的批判性思维。我特别喜欢它在描述那些不那么常用的特性时所采用的措辞,它不会简单地告诉你“这个属性应该这么用”,而是会解释“在A、B、C三种场景下,使用这个特性可能会带来D、E、F的副作用,因此我们推荐在X场景下使用它”。这种“情境化”的教学方式,使得知识点不再是孤立的,而是融入到了复杂的决策树中。对于那些已经有其他语言背景的程序员来说,这本书在类比和对比时处理得也非常得当,它能迅速帮你找到C++或Java思维定式需要调整的关键节点,加速了思维模式的切换。总而言之,它不是在“喂”你知识,而是在“教”你如何像一个资深的OC开发者那样去“思考”问题,这种教学上的匠心,是很多技术书籍所不具备的。
这本书的结构安排,透露出一种非常成熟的软件工程思想,而非单纯的语言特性堆砌。我注意到,它在介绍完基础语法和核心概念之后,非常自然地过渡到了如何构建健壮的应用。例如,在讨论到异常处理和错误报告机制时,它并没有停留在`try-catch`的简单应用上,而是探讨了如何在大型项目中设计一套统一的错误日志系统,以及如何利用OC的运行时特性来增强调试能力。最让我眼前一亮的是关于“性能优化”的部分,这部分内容写得非常实用,它没有给出那种空泛的“要快”的口号,而是直接给出了具体的工具和方法论。作者详细讲解了Instruments的使用技巧,特别是关于Core Animation的性能分析,以及如何通过代码审查来识别潜在的性能瓶颈。这种将语言学习与实际应用工具结合起来的写法,极大地提升了这本书的实战价值。我感觉自己读的不仅仅是一本编程语言参考书,更像是一本高级调试和优化手册。读完后,我立刻上手去分析了我手头上正在进行的一个App的性能报告,很多过去模糊不清的卡顿原因,现在都有了明确的定位和解决方案,这直接体现在了用户反馈的改善上。
这本厚厚的书脊简直就是一本沉甸甸的承诺,刚拿到手时,那种纸张的油墨香气混合着知识的重量感,让人对接下来的学习旅程充满了期待。我记得翻开扉页,排版非常扎实,没有那种空洞的填充感,每一个章节的标题都直指核心,仿佛是经验老道的工程师在为你指点迷津。我本来对iOS开发还停留在“能跑起来就行”的阶段,对内存管理和多线程这些底层概念总是心存畏惧,觉得那是只有大神才需要掌握的领域。但这本书的叙述方式极其耐心,它没有直接把那些晦涩难懂的术语像瀑布一样砸下来,而是像一位循循善诱的老师,先从最基础的对象模型讲起,把“万物皆对象”这个概念用生活化的例子解释得清晰透彻。我尤其欣赏它在讲解运行时(Runtime)部分的处理,那些关于消息传递和方法调用的细节,以前看其他资料都是一笔带过,但这儿却像剥洋葱一样,一层层地剖开,直到你真正理解了OC语言的“魔法”发生在哪里。书中的代码示例总是简洁而精准,每一个例子都不仅仅是为了展示语法,更是为了强化一个设计思想或者一个性能优化的最佳实践。读完前几章,我感觉自己像是终于拿到了地图,而不是还在原地打转。这为我后续深入研究设计模式和框架源码打下了极其坚实的地基,不再是浮于表面的调用API,而是真正开始“思考”代码的运行机制了。
这本书的参考价值和索引系统做得非常出色,这对于一本内容如此详尽的技术书籍来说至关重要。我经常需要在工作中快速查找某个特定方法或者协议的详细行为描述,翻阅那些内容松散的在线文档常常令人沮丧。但这本书的编排逻辑非常清晰,无论是按字母顺序排列的类/方法索引,还是对Cocoa/Cocoa Touch框架中核心设计模式的系统性梳理,都做得井井有条。我发现自己越来越依赖于书本本身来做快速查阅,而不是习惯性地打开浏览器搜索。例如,当我需要回顾Core Data的栈管理时,我可以直接翻到对应的章节,作者对MOC(托管对象上下文)生命周期和并发处理的描述,比我之前在网上找到的任何碎片化资料都要完整和准确。这表明作者在撰写过程中,不仅考虑了知识的传授,更考虑了知识的“可检索性”和“长期维护性”。对我而言,这本书已经从一本学习教材升级成了一本工作台上的必备参考工具书,它确保了我所依赖的技术细节始终是基于最权威和最深层次的理解,而不是基于模糊的“我记得好像是这样”的印象。
just soso
入门书籍
介绍得还可以,比较深入浅出,入门读物
OO思想跟Java很是相似。IOS开发入门非常不错,推荐。
介绍得还可以,比较深入浅出,入门读物