Objective-C基础教程(第2版)(c语言程序设计宝典,c语言入门必备手册!第一版畅销50000册,新版全面升级!)

  • 书籍语言:简体中文
  • 下载次数:2872
  • 书籍类型:Epub+Txt+pdf+mobi
  • 发布日期:2025-09-06
  • 连载状态:全集
  • 书籍作者:
  • 图书编号:9787115314581
  • 运行环境:pc/安卓/iPhone/iPad/Kindle/平板

编辑推荐

  权威解读Objective-C和Cocoa特性.全面涵盖****和新增工具.iPhone、iPad、Mac开发必备.Objective-C是一门面向对象、通用、高级、强大的编程语言。它有着优雅的编程环境,并发扬了C语言的优秀特性,是苹果的iOS和OS X操作系统的主要编程语言。全面系统地讲述了Objective-C的基础知识和面向对象编程的重要概念,结合实例介绍了Cocoa工具包的优秀特性及框架,以及继承、复合、对象初始化、类别、协议、内存管理和源文件组织等重要编程技术,教你如何针对iOS或OS X用户界面编写出优秀的应用程序。另外,本书第2版新增内容有: 1. Objecitve-C**特性:代码块、ARC、类扩展;2. 新增工具Clang静态分析器GCD;3. 如何使用UIKit框架开发精致的iOS应用程序;4. 如何使用**版本的Xcode。无论你是初次接触Objective-C和Cocoa,还是已有丰富的C语言、C++或者Java编程经验,本书都能让你轻松过渡并熟练掌握Objective-C!

 

目录

第1章 启程 
1.1 预备知识 
1.2 历史 
1.3 内容简介 
1.4 准备工作 
1.5 小结 

第2章 对C的扩展 
2.1 最简单的Objective-C程序 
2.2 解构Hello Objective-C程序 
2.2.1 #import语句 
2.2.2 框架 
2.2.3 NSLog()和@“字符串” 
2.3 布尔类型 
2.4 小结 

第3章 面向对象编程的基础知识 
3.1 间接 
3.1.1 变量与间接 
3.1.2 使用文件名的间接 
3.2 在面向对象编程中使用间接 
3.2.1 过程式编程 
3.2.2 实现面向对象编程 
3.3 有关术语 
3.4 Objective-C语言中的OOP 
3.4.1 @interface部分 
3.4.2 @implementation部分 
3.4.3 实例化对象 
3.4.4 扩展Shapes-Object程序 
3.5 小结 

第4章 继承 
4.1 为何使用继承 
4.2 继承的语法格式 
4.3 继承的工作机制 
4.3.1 方法调度 
4.3.2 实例变量 
4.4 重写方法 
4.5 小结 

第5章 复合 
5.1 什么是复合 
5.2 自定义NSLog() 
5.3 存取方法 
5.3.1 设置engine属性的存取方法 
5.3.2 设置tires属性的存取方法 
5.3.3 Car类代码的其他变化 
5.4 扩展CarParts程序 
5.5 复合还是继承 
5.6 小结 

第6章 源文件组织 
6.1 拆分接口和实现 
6.2 拆分Car程序 
6.3 使用跨文件依赖关系 
6.3.1 重新编译须知 
6.3.2 让汽车跑一会儿 
6.3.3 导入和继承 
6.4 小结 

第7章 深入了解Xcode 
7.1 窗口布局一览 
7.2 改变公司名称 
7.3 使用编辑器的技巧 
7.4 在Xcode的帮助下编写代码 
7.4.1 首行缩进(美观排版) 
7.4.2 代码自动完成 
7.4.3 括号配对 
7.4.4 批量编辑 
7.4.5 代码导航 
7.4.6 集中精力 
7.4.7 使用导航条 
7.4.8 获取信息 
7.5 调试 
7.5.1 暴力测试 
7.5.2 Xcode的调试器 
7.5.3 精巧的调试符号 
7.5.4 开始调试 
7.5.5 检查程序 
7.6 备忘表 
7.7 小结 

第8章 Foundation Kit介绍 
8.1 稳固的Foundation 
8.2 使用项目样本代码 
8.3 一些有用的数据类型 
8.3.1 范围 
8.3.2 几何数据类型 
8.4 字符串 
8.4.1 创建字符串 
8.4.2 类方法 
8.4.3 关于大小 
8.4.4 字符串比较 
8.4.5 不区分大小写的比较 
8.4.6 字符串内是否还包含别的字符串 
8.4.7 可变性 
8.5 集合大家族 
8.5.1 NSArray 
8.5.2 可变数组 
8.5.3 枚举 
8.5.4 快速枚举 
8.5.5 NSDictionary 
8.5.6 请不要乱来 
8.6 其他数值 
8.6.1 NSNumber 
8.6.2 NSValue 
8.6.3 NSNull 
8.7 示例:查找文件 
8.8 小结 

第9章 内存管理 
9.1 对象生命周期 
9.1.1 引用计数 
9.1.2 对象所有权 
9.1.3 访问方法中的保留和释放 
9.1.4 自动释放 
9.1.5 所有对象放入池中 
9.1.6 自动释放池的销毁时间 
9.1.7 自动释放池的工作流程 
9.2 Cocoa的内存管理规则 
9.2.1 临时对象 
9.2.2 拥有对象 
9.2.3 垃圾回收 
9.2.4 自动引用计数 
9.3 异常 
9.3.1 与异常有关的关键字 
9.3.2 捕捉不同类型的异常 
9.3.3 抛出异常 
9.3.4 异常也需要内存管理 
9.3.5 异常和自动释放池 
9.4 小结 

第10章 对象初始化 
10.1 分配对象 
10.1.1 初始化对象 
10.1.2 编写初始化方法 
10.1.3 初始化时要做些什么 
10.2 便利初始化函数 
10.3 更多部件改进 
10.3.1 Tire类的初始化 
10.3.2 更新main()函数 
10.3.3 清理Car类 
10.4 Car类的内存清理(垃圾回收方式和ARC方式) 
10.5 指定初始化函数 
10.5.1 子类化问题 
10.5.2 Tire类的初始化函数改进后的版本 
10.5.3 添加AllWeatherRadial类的初始化函数 
10.6 初始化函数规则 
10.7 小结 

第11章 属性 
11.1 使用属性值 
11.1.1 简化接口代码 
11.1.2 简化实现代码 
11.1.3 点表达式的妙用 
11.2 属性扩展 
11.2.1 名称的使用 
11.2.2 只读属性 
11.2.3 自己动手有时更好 
11.2.4 特性不是万能的 
11.3 小结 

第12章 类别 
12.1 创建类别 
12.1.1 开始创建类别 
12.1.2 @interface部分 
12.1.3 @implementation部分 
12.1.4 类别的缺陷 
12.1.5 类别的优势 
12.1.6 类扩展 
12.2 利用类别分散实现代码 
12.3 通过类别创建前向引用 
12.4 非正式协议和委托类别 
12.4.1 ITunesFinder项目 
12.4.2 委托和类别 
12.4.3 响应选择器 
12.4.4 选择器的其他应用 
12.5 小结 

第13章 协议 
13.1 正式协议 
13.1.1 声明协议 
13.1.2 采用协议 
13.1.3 实现协议 
13.2 复制 
13.2.1 复制Engine 
13.2.2 复制Tire 
13.2.3 复制Car 
13.2.4 协议和数据类型 
13.3 Objective-C 2.0的新特性 
13.4 委托方法 
13.5 小结 

第14章 代码块和并发性 
14.1 代码块 
14.1.1 代码块和函数指针 
14.1.2 Objective-C变量 
14.2 并发性 
14.2.1 同步 
14.2.2 队列也要内存管理 
14.2.3 操作队列 
14.3 小结 

第15章 AppKit简介 
15.1 构建项目 
15.2 创建委托文件的@interface部分 
15.3 Interface Builder 
15.4 设计用户界面 
15.5 创建连接 
15.5.1 连接输出口(IBOutlet) 
15.5.2 连接操作(IBAction) 
15.6 应用程序委托的实现 
15.7 小结 

第16章 UIKit简介 
16.1 视图控制器 
16.2 小结 

第17章 文件加载与保存 
17.1 属性列表 
17.1.1 NSDate 
17.1.2 NSData 
17.1.3 写入和读取属性列表 
17.1.4 修改对象类型 
17.2 编码对象 
17.3 小结 

第18章 键/值编码 
18.1 入门项目 
18.2 KVC简介 
18.3 键路径 
18.4 整体操作 
18.4.1 休息一下 
18.4.2 快速运算 
18.5 批处理 
18.6 nil仍然可用 
18.7 处理未定义的键 
18.8 小结 

第19章 使用静态分析器 
19.1 静态工作 
19.1.1 开始分析 
19.1.2 协助分析器 
19.1.3 了解更多 
19.2 小结 

第20章 NSPredicate 
20.1 创建谓词 
20.2 计算谓词 
20.3 数组过滤器 
20.4 格式说明符 
20.5 运算符 
20.5.1 比较和逻辑运算符 
20.5.2 数组运算符 
20.6 有SELF就足够了 
20.7 字符串运算符 
20.8 LIKE运算符 
20.9 结语 

附录 从其他语言转向Objective-C 
索引 

作者简介

  Scott Knaster
  Mac开发界传奇人物,曾就职于苹果公司,帮助开发人员编写早期平台的Mac软件。目前在谷歌工作,负责维护Google Mac Blog。著有多部程序员必读的经典著作,如How to Write Macintosh Software、Hacking Mac OS X Tiger和Macintosh Programming Secrets。
  Waqar Malik
  UNIX迷,Macintosh控。早期曾就职于苹果公司,帮助开发Cocoa和Unix。目前创立了技术咨询公司Crimson Research,从事Cocoa应用开发工作。
  Mark Dalrymple
  资深Mac和Unix程序员,有20多年开发经验,曾开发过跨平台工具包、因特网发布工具、高性能Web服务器和终端用户桌面应用。另外,他还与人合著过Core Mac OS X and Unix Programming和Advanced Mac OS X Programming(《Mac OS X高级编程权威指南》)。

下载地址

部分章节

"第一章 启  程

欢迎阅读本书!本书旨在教你学会Objective-C编程语言的基础知识。Objective-C语言是C语言的一个扩展集,几乎OS X或iOS平台上的所有应用程序都是用该语言开发的。
本书除了介绍Objective-C语言,还会介绍苹果公司为其提供的工具包Cocoa(针对OS X系统)和Cocoa Touch(针对iOS系统)。它们都是用Objective-C语言编写的,里面分别包含了OS X和iOS系统的所有用户界面元素和其他所有相关内容。学会了Objective-C之后,你就可以用Cocoa来开发功能完备的项目,还可以深入阅读其他相关书籍,比如Learn Cocoa on the Mac(Apress,2010)和Beginning iOS 5 Development (Apress,2011)。
本章会介绍一些在学习Objective-C语言之前需要了解的基本知识,还将介绍Objective-C语言的一些历史,并简要介绍其他各章的内容。
1.1 预备知识
读者在阅读本书之前,应对C语言或类似的编程语言(比如C++或Java)有一定的了解。无论是哪一种语言,都应该熟悉它的基本原理,理解什么是变量、方法和函数,知道怎样使用条件和循环语句来控制程序流方向。本书将重点介绍Objective-C在其基础语言C上添加的新特性,以及苹果公司Cocoa工具包的一些优秀功能。
对于不具备C语言基础的Objective-C学习者,可以先看看本书的附录或阅读Learn C on the Mac(Apress,2009)后,再来学习本书的内容。
1.2 历史
Cocoa和Objective-C是苹果公司OS X和iOS操作系统的核心。虽然OS X(尤其是iOS)出现的时间相对较晚,但Objective-C和Cocoa的推出则已有时日。早在20世纪80年代初,Brad Cox为了融合流行的、可移植的C语言和优雅的Smalltalk语言的优势,就设计出了Objective-C语言。1985年,史蒂夫?乔布斯创立了NeXT公司,致力于创建功能强大且经济实惠的工作站。NeXT公司选择Unix作为操作系统并创建了NextSTEP(使用Objective-C语言开发的一款功能强大的用户界面工具包)。虽说它很有特点,并拥有了少量忠实的拥趸,但是在商业上却并没有获得成功。
苹果公司在1996年收购了NeXT(或者也可以说是NeXT收购了苹果公司 )之后,NextSTEP更名为Cocoa,并得到了Macintosh开发人员的广泛认可。苹果公司的开发工具(包括Cocoa)都是免费提供的,只要具备一定的编程经验和基本的Objective-C知识,以及强烈的求知欲,任何程序员都可以使用这些工具。
有人可能会问:“既然Objective-C和Cocoa都是在20世纪80年代(那还是Alf和A-Team流行的时代,更不用提爷爷辈的Unix了)发明的,难道它们现在还没有过时吗?”当然没有!Objective-C和Cocoa是由一群优秀的编程人员耗费数年时间完成的,而且他们从未停止过更新与改进。经过多年发展,Objective-C和Cocoa已经演化成了一个美观精致且功能强大的工具集。近几年,iOS已经成为了最热门的开发平台,而Objective-C则是为其开发优秀应用程序的不二之选。因此,从NeXT最早采用至今已有二十多年,Objective-C的魅力依然不减当年。
1.3 内容简介
Objective-C是以C语言为基础的一个扩展集,它添加了一些微妙但意义重大的新特性。如果你接触过C++或Java编程语言,那么一定会惊叹Objective-C代码竟然如此简洁。本书其他章节将会详细介绍Objective-C在C语言基础上所添加的新特性。
? 第2章主要介绍Objective-C语言引入的基本特性。
? 第3章介绍面向对象编程的基础知识。
? 第4章介绍如何创建继承其父类特性的子类。
? 第5章讨论相关对象之间协同工作的技巧。
? 第6章演示创建程序源文件的实际策略。
? 第7章介绍Xcode的使用诀窍和强大功能,以帮助你提高编程效率。
? 第8章暂时告别Objective-C,转而介绍Cocoa的重要框架Foundation Kit,为你展现Cocoa的优秀特性。
? 第9章详细介绍Cocoa应用程序中的内存管理操作。
? 第10章讨论对象初始化的神奇。
? 第11章介绍了Objective-C语言中点表示法的实际作用,以及轻松访问对象的方法。
? 第12章详细描述了Objective-C语言中的一个非常出色的特性:类别(Category)。你可以通过它为现有的类(即便不是你所写的)添加自己的方法。
? 第13章介绍了Objective-C的一种继承方式——协议(Protocol),它允许类文件实现打包的特性集。
? 第14章展示了如何使用Objective-C的最新特性“程序块”(Block,它能够包含数据和代码)来增强函数的功能。
? 第15章介绍如何用AppKit框架来开发精致的OS X应用程序。
? 第16章与第15章类似,只不过它介绍的是iOS应用程序的基础框架UIKit。
? 第17章将展示如何保存和检索数据。
? 第18章讲解了如何使用“键?值编码”方法来间接处理数据。
? 第19章介绍了如何利用Xcode中强大的工具来查找程序员平常会出现的错误。
? 最后,第20章介绍如何分解数据。
如果你之前使用的是Java或C++等其他编程语言,或是Windows或Linux等其他平台,那么可以先阅读一下本书的附录,其中指出了学习Objective-C所需要克服的一些思维障碍。
1.4 准备工作
Xcode是苹果提供的用来创建iOS和OS X应用程序的开发环境。Mac电脑上并没有预装Xcode,不过只要你的苹果电脑运行的是OS X 10.7以上的系统,就可以轻松地免费下载并
安装。
踏上OS X和iOS开发漫长奇妙之旅的第一步就是确保在电脑上安装了Xcode。没有安装的读者可以从Mac App Store上下载安装。方法是点击Dock栏上的App Store图标(如图1-1所示),也可以在用户的应用程序文件夹中打开App Store。
 
图1-1 Dock栏上的App Store图标
然后在Mac App Store应用程序右上角的搜索框中输入Xcode进行搜索(如图1-2所示)。
或者你也可以点击顶部的“类别”按钮并选择“软件开发工具”选项,此时你将在顶端某个位置看到Xcode(如图1-3所示)。点击Xcode图标便会跳转到它的下载页面了(如图1-4
所示)。
 
图1-2 在Mac App Store程序中搜索Xcode
 
图1-3 软件开发工具
 
图1-4 Mac App Store中Xcode的下载页面
请点击“免费”按钮,然后点击“安装App”按钮。接下来App Store便会把Xcode 安装到你的应用程序文件夹中。
现在你可以开始Objective-C学习之旅了。祝你好运!我们会与你一起开始这场旅途,至少会陪你踏上第一段旅途。
1.5 小结
OS X和iOS程序都是用Objective-C语言编写的,它所使用的技术可以追溯到20世纪80年代,如今这些技术已经演化成一个功能强大的工具集。本书假设你已对C语言或其他一般编程语言有了一定的了解。
希望你能从本书中获得乐趣!
"

短评

书评

笔记