Objective-C 2.0编程

 第一章 引言
20世纪70年代早期Dennis Ritchie在美国电话电报公司的贝尔实验室开发出了C语言。然而,这种编程语言直到70年代晚期才开始得到广泛的流行和支持,这是因为,在此之前,C编译器还不能在贝尔实验室之外进行商业应用。最初, 这种日渐增长的流行趋势也部分得益于UNIX操作系统的普及,此时UNIX操作系统也正以同样甚至更快的速度流行起来,而UNIX操作系统几乎完全是用C语言开发的。20世纪80年代早期Brad J. Cox基于一种叫做SmallTalk-80的编程语言设计出了Objective-C编程语言。Objective-C被置于C语言的上层,也就是说它把C语言扩展成了一种允许创建并操作对象的新的编程语言。1988年NeXT软件公司获得授权使用Objective-C并开发出了它的语言库和名为NEXTSTEP的开发环境。1992年, 自由软件基金会的GNU开发环境增加了对Objective-C的支持。由于这个软件是对公众开放的,这就意味着任何人都可以免费下载工具来学习Objective-C编程。1994年, NeXT公司和Sun公司联合发布了一套NEXTSTEP系统的标准规范, 叫做OPENSTEP,自由软件基金会实现的OPENSTEP版本叫做GNUStep。而Linux下的版本十分贴切地称为LinuxSTEP,它同时包含了Linux kernel和GNUStep开发环境。1996年12月20日,Apple公司宣布它即将获得NeXT公司, 而NEXTSTEP/OPENSTEP开发环境成了苹果OS X操作系统下一个主要发布版本的基础。苹果公司这个版本的开发环境叫做Cocoa。内置了对Objective-C编程语言的支持, 再加上Project Builder (或它的升级版Xcode) 和Interface Builder等开发工具,苹果公司为在Mac OS X平台上开发应用程序创建了一个强大的开发环境。
2007年,苹果公司发布了Objective-C语言的更新版本,并把它标记为Objective-C 2.0。Objective-C 2.0在本书的第二版中做了详细的阐述。

2007年iPhone面世的时候,开发者们为这个革命性的设备所带来的开发应用产品的机会而争论不休。最初,苹果公司并不欢迎第三方应用开发,苹果公司为了化解热心的iPhone开发者的不满的方式就是允许他们开发基于网络的应用软件。基于网络的应用软件要运行在iPhone内置的Safari网络浏览器上,并且需要用户链接到拥有这些应用软件的网站来运行它。开发者们不满于基于网络的应用软件固有的众多限制,苹果公司随后不久就宣布开发者将能够为iPhone开发所谓的本地应用。本地应用就是保存在iPhone上并且在iPhone操作系统上运行,与iPhone内置应用软件(例如:Contacts, iPod, 和Weather等)以同样的方式运行的软件。iPhone的OS操作系统实际上是Mac OS X的一个版本,这就意味着你能在像MacBook Pro这样的设备上开发和调试这些应用程序。事实上,苹果很快就提供了一个能够快速开发和调试iPhone应用的强大的软件开发工具包(SDK).而iPhone模拟器的实现使得开发者可以直接在开发系统中调试应用程序,而不必把它下载到iPhone或iPod Touch设备上来测试程序。你将从这本书中学到什么
当我构思写一份Objective-C教程的时候, 我必须做一个基本的决定。像其他介绍Objective-C的书籍一样,我写这本书的时候可以假设读者已经知道如何编写C程序了。我也可以从使用Foundition 框架和Application Kit框架等丰富的语言库的角度来讲解这门语言。一些内容也讲解了如何使用Mac系统的Xcode、Interface Builder等开发工具。我要说明一下这种方法涉及到的几个问题。首先,在学习Objective-C之前完整地学习C语言是错误的。C语言做为一门面向过程的程序设计语言包含了很多Objective-C编程中用不到的特征,对新手来说尤其如此。事实上,采用某些这样的特征会不利于坚持学习良好的面向对象的编程方法。在学习面向对象的编程语言之前,全面地学习面向过程的编程语言的所有细节也没什么好处。这会使程序员从错误的方向开始,形成错误的取向和心态,不利于形成良好的面向对象的编程风格。Objective-C是对C的扩展并不代表你一定要首先学习C语言。所以我决定既不先讲解C语言,也不假设读者已经具备了C语言的知识。相反,我决定采用一种新的方法,从面向对象的角度来出发,我把Objective-C语言和做为基础的C语言当做一种统一的语言来讲解。这本书的目的正如它的名字一样:教你如何用Objective-C 2.0编程。这并不是说要详细地教你如何使用手头的开发工具,输入代码、调试程序,或者深入地指导你如何用Cocoa开发交互式图形应用程序。你学习了如何编写Objective-C程序之后,你能在其他地方更详细地学习这些内容。其实,当你拥有了编写Objective-C程序的坚实基础以后,掌握那些内容将变得非常容易。这本书并没有过多地假设你此前的编程经验。事实上,如果你是一个编程新手,你也应该能够把Objective-C做为你的第一门编程语言来学习。这本书通过范例来讲解Objective-C。每当我提出这门语言的一个新特征的时候,我都会提供一个小而完整的示例程序来阐述这个特征。如同一张图片就能胜过千言万语一样,一个选取恰当的示例程序也同样如此。我强烈建议你运行每一个程序(所有程序都可以在网上得到)并且把你的系统得到的运行结果与书中的结果比较一下。这样做,你不但可以学习这门语言和它的句法,同时你也会熟悉编译和运行Objective-C程序的过程。这本书是如何组织的
这本书分为三个逻辑部分。第一部分,“Objective-C 2.0编程语言,”讲解这门语言的要点。第二部分,“Foundation框架,”讲解如何使用组成Foundation框架的种类丰富的预定义的类。第三部分,“Cocoa 编程和 iPhone SDK,”首先概述了Cocoa系统的 Application Kit框架,然后带你体验使用UIKit框架开发一个简单的iPhone应用程序,以及用Xcode和 Interface Builder开发和调试代码的过程。框架就是有机组织起来以使开发程序更为简单的一系列的类和例程。Objective-C 编程的强大之处很大程度上就在于你可以使用它的这些众多的框架。第二章,“Objective-C编程,”从教你如何用Objective-C写你的第一个程序开始。因为这不是一本Cocoa编程书,所以在第三部分之前不会过多地讲解图形用户界面(GUIs),甚至提到它的时候也很少。所以我们需要一种方法来向程序输入数据,并获得输出结果。这本书中的大多数示例程序都是从键盘输入数据,而把生成的结果输出到一个视窗中:如果你用的是gcc命令行,那就输出到Terminal视窗, 如果你用的是XCode,那就输出到 Console视窗。第三章,“类,对象和方法,”覆盖了面向对象编程的基础知识。这一章中引入了一些术语,但是保持在最低的限度上。我也介绍了定义类的机制,以及向实例和对象发送消息的原理。教师和有经验的Objective-C 程序员会注意到我使用静态类型来声明对象。我认为这是学生开始学习Objective-C的最好方式,因为这样编译器会捕获更多的错误,以使程序更好地自成文档,并鼓励新的程序员明确地声明已知的数据类型。结果,id类型的概念和它的作用在第九章“多态,动态类型和动态绑定。"之前并没有做完整的介绍。
第四章,“数据类型和表达式,”描述了Objective-C 的基本数据类型,以及在你的程序中如何使用它们。第五章“循环结构程序”介绍了三种循环语句: for循环,while循环和 do循环。你可以在程序中使用这三种循环语句。做决定是任何计算机编程语言的基础。第六章“决策”详细地讲述了 Objective-C 语言的 if 语句和 switch 语句。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值