iPhone应用开发必知必会的三大基础

移动开发 iOS
本文为iPhone应用开发第一季:初识iPhone应用开发的三大基础:MAC系统介绍、Xcode开发环境介绍和Cocoa框架介绍。这三大基础是iPhone OS应用开发必知必会的内容,希望大家喜欢!

我们刚刚给大家介绍过《成为iPhone游戏开发者的十大秘技》,在刚刚要接触iPhone应用程序开发时,往往都对iPhone应用程序开发无从下手,今天我们就来和大家探讨一下iPhone应用开发必知必会三大的基础。首先,第一节大家都知道应该就是:“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!程序您看得懂么?

  1. import <Foundation/Foundation.h> 
  2. int main (int argc, const char * argv[]) {   
  3. NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];   
  4. NSLog(@"Hello, World!");   
  5. [pool drain];   
  6. return 0;   
  7. }   
  8.  

首先,和绝大多数您所见过的C程序一样,任何一个Cocoa应用程序都有一个主函数:

  1. int main(int argc, const char * argv[])  
  2.  

主函数是应用程序的主入口,也是一切开始和结束的地方。是的,没错!从表面上看,这些代码和常见的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代码,那就请放心大胆的继续吧! 

51CTO推荐专题:

[[17380]]

Phone Club——51CTO移动开发线下技术沙龙

活动日期:12月19日
本期主题:Android应用开发技术进阶
地点:创新工场 北京市海淀区北四环西路66号第三极大厦B座18层
演讲讲师:王明礼(创新工场) 范怀宇(网易)

【编辑推荐】

  1. 进阶:成为iPhone游戏开发者的十大秘技
  2. 用数据说话 Symbian和iPhone占据移动世界的两极
  3. C++开发者快速学习Objective-C语言核心语法
  4. Objective-C基础语法快速入门
  5. .NET平台开发Windows Phone 7、iPhone及Android应用
责任编辑:佚名 来源: javaeye
相关推荐

2020-07-10 07:58:14

Linux

2020-03-30 15:25:14

Vim编辑器Linux

2022-08-26 14:46:31

机器学习算法线性回归

2024-01-03 07:56:50

2018-10-26 14:10:21

2022-05-18 09:01:19

JSONJavaScript

2024-01-10 18:01:22

编程技巧Java 12

2023-11-08 18:01:53

硬重置Git命令

2020-11-25 10:40:58

程序员技能开发者

2018-09-18 10:56:52

Android开发http

2023-05-08 15:25:19

Python编程语言编码技巧

2023-04-20 14:31:20

Python开发教程

2023-12-26 12:10:13

2015-10-20 09:46:33

HTTP网络协议

2019-01-30 14:14:16

LinuxUNIX操作系统

2023-11-21 20:15:10

Git命令开发

2014-02-09 10:30:17

Python程序员工具

2022-08-19 10:31:32

Kafka大数据

2020-08-23 18:18:27

Python列表数据结构

2021-06-09 11:06:00

数据分析Excel
点赞
收藏

51CTO技术栈公众号