iPhone应用开发第一季:初识iPhone应用开发的三大基础:MAC系统介绍、Xcode开发环境介绍和Cocoa框架介绍。这三大基础是iPhone OS应用开发必知必会的内容
首先,第一节大家都知道应该就是:“HelloWorld”!
◆MAC系统介绍
◆Xcode开发环境介绍
◆Cocoa框架介绍
什么是MAC?
◆MAC系统是苹果机专用系统,正常情况下在普通pc上无法安装的操作系统
◆MAC壁纸
苹果公司不但生产MAC的大部分硬件,连MAC所用的操作系统都是它自行开发的,接下来,我们就来了解一下它的操作系统。
苹果机现在的操作系统已经到了OS 10,代号为MAC OS X(X为10的罗马数字写法),这是MAC电脑诞生15年来最大的变化。新系统非常可靠,它的许多特点和服务都体现了苹果公司的理念。
另外,现在疯狂肆虐的电脑病毒几乎都是针对Windows的,由于MAC的架构与 Windows不同,所以很少受到病毒的袭击。MAC OS X操作系统界面非常独特,突出了形象的图标和人机对话(图形化的人机对话界面最初来自施乐公司的Palo Alto研究中心,苹果借鉴了其成果开发了自己的图形化界面,后来又被微软的Windows所借鉴并在Windows中广泛应用)。苹果公司能够根据自己的技术标准生产电脑、自主开发相对应的操作系统,可见它的技术和实力非同一般。打个比方,苹果公司就像是Dell和微软的联合体,在软硬件方面“才貌双全”。
什么是Xcode?
Xcode是Apple自己开发的,只运行在Mac OS X平台下的IDE。如果你想真正了解Mac OS X平台上的开发,就应该了解它。当然,Mac OS X实现了POSIX,固然也支持传统的UNIX编程环境;Eclipse等Java开发工具也有Mac OS X版。不过这些,你在Linux或者Windows平台也能体验到。Xcode也并不神秘,Apple并没有自己特有的编译器(尽管Mac上的Gcc是经苹果修改过的版本),创建项目的时候,Xcode还是会生成并执行一条条的Gcc和ld的命令。所以如果你有足够的UNIX经验(并且知道到哪里找需要用的Framework),完全可以在命令行编译一个完整的Cocoa应用程序。
其实Xcode提供了很多功能,使你无论在创建项目、设计、修改代码还是编译等各个环节都能收益,恐怕你很难找到一个不使用它的理由。事实上,自从Mac OS 10.4引入了Universal Binary的概念以后,Xcode几乎成为了大多数Mac开发者的唯一选择。不用担心的是Xcode是免费的,只要你有一台Mac,随机带的安装盘里就有Xcode,升级是免费的(不过如果你用的是Mac OS 10.5以前版本的OS,你将不能运行Xcode 3.0或以上的版本)。
什么是Cocoa?
Cocoa Framework简称Cocoa,它是Mac OS X上的快速应用程序开发(RAD, Rapid Application Development)框架,一个高度面向对象的(Object Oriented)开发框架。无论您是资深的Mac开发人员,还是即将踏入Mac开发世界的新新人类,Cocoa都是您开发应用程序的瑞士军刀、乐高积木,它是您构建Mac OS X应用程序最强大、最高效的工具。值得一提的是,苹果公司之所以能够开发出众多顶级软件,其实也正是因为有着Cocoa这个秘密武器。Cocoa是Mac OS X上原生支持的应用程序开发框架,苹果公司强烈推荐所有Mac开发人员使用。
骨灰话题:Hello World!
相信对于任何一个开发人员,Hello World!都应该是个熟悉无比的东西。那么,Cocoa的Hello World!程序您看得懂么?
- import?<Foundation/Foundation.h>?
- int?main?(int?argc,?const?char?*?argv[])?{? ?
- NSAutoreleasePool?*?pool?=?[[NSAutoreleasePool?alloc]?init];? ?
- NSLog(@"Hello,?World!");? ?
- [pool?drain];? ?
- return?0;? ?
- }? ?
- ?
首先,和绝大多数您所见过的C程序一样,任何一个Cocoa应用程序都有一个主函数:
- int?main(int?argc,?const?char?*?argv[]) ?
- ?
主函数是应用程序的主入口,也是一切开始和结束的地方。是的,没错!从表面上看,这些代码和常见的C程序的代码没有什么区别,而且事实上,它们和C程序的代码的的确确没有什么区别。
接下来你该问我,那什么是Foundation?Foundation.h里装的又是什么?什么是NSAutoreleasePool?那些中括号又是什么?...... 别急,在后续的几章里我们会慢慢把这么多陌生的面孔熟悉起来,当然我也可以现在就大致的解释一下:
Foundation全称Foundation Framework,是Cocoa的一个子开发框架。Foundation里包含了Cocoa中最基本的一些类,它们在一个Mac应用程序中通常负责对象管理、内存管理、容器等相关数据结构的操作。Foundation.h是Foundation的头文件,一旦引入了这个头文件,我们就可以在自己的程序里使用任何在Foundation里声明的类。例如在上述代码中,NSAutoreleasePool就是Foundation中声明的一个类,它为应用程序提供可控制的延迟对象释放的内存管理。至于那些方括号,它们是Objective-C里最最基本的语法成分,一对方括号中间的内容表示对对象(或类)进行一次方法的调用。
如果您没有听明白,请不要惊慌失措,咱们在下面的几章里慢慢说。另外,Cocoa的国际音标是['koukou]希望大家能把这个单词的音读对。
Objective-C其实很C
在使用Cocoa进行应用程序开发的时候,Objective-C是我们首选的语言。(当然,Cocoa也通过官方、第三方等途径,构建了 Cocoa-Ruby、Cocoa-Python等编程语言上的桥接,使无论是来自Ruby还是Python世界的开发人员能够使用他们熟悉的语言快速上手。)不过在这里,我们还是要首推Objective-C作为一个Cocoa程序的开发语言,原因有二:
其一、Objective-C实际上是C的超集。
Objective-C的运行环境库(Runtime Library)完全是由C编写的,因此任何一个Objective-C消息派发(Message Dispatching),都会被替换成Objective-C运行环境中的某个或某几个C函数的调用。这种机制为Objective-C带来了高效的消息派发和对C代码完全原生的兼容。
其二、整个Cocoa Framework都是由Objective-C/C实现的。
因此在开发一个Cocoa应用程序的时候,Objective-C是我们不二的选择。
当我们说到“Objective-C”的时候,尽管编程模型和C不同,尽管语法看似有些奇怪,但事实我们所讨论的依然还是C语言。因为Objective-C确实是C,说的简单些:
Objective-C就是拥有一个面向对象层(Object Oriented Layer)的C。而Objective-C正是通过从Smalltalk进化而来的这种语法,实现了对这个面向对象层的支持。因此如果您正在使用 Objective-C开发一个Cocoa应用程序,同时又希望在某些代码的某些位置插入一些C代码,那就请放心大胆的继续吧!