版权所有:AisideChina
本博客将在今后陆续进行本书的连载,敬请关注!
更多内容请大家购买正版《iPhone应用程序开发指南(基础篇)》
3.1 Objective-C简介
Objective-C语言是C语言的一个扩展集,它在标准C语言的基础上添加了面向对象的特性,是一个拥有面向对象层的C。Objective-C的运行环境库完全是由C编写的,任何一个Objective-C的方法调用,在运行环境中都会被替换成某些对应的C函数。
下表3-1中将Objective-C与C++做了一下比较说明。
表3-1 Objective-C与C++比较表
比较方面 | Objective-C | C++ |
类的声明形式 | @interface 类名{ //变量声明
…… } //方法声明 …… @end |
Class 类名{ //类的声明(包括变量与方法)
…… }; |
类的实现形式 | @implement 类名类的实现
…… @end |
类的实现…… |
初始化方法 | 实际上是以“init”字样开头的普通成员方法。 | 构造函数 |
方法声明形式 | +/-(返回值类型)函数名:(参数A类型)参数A形参名 函数名:(参数B类型)参数B形参名 …; | (static) 返回值类型 函数名(参数列表); |
方法调用形式 | [对象 方法名:参数A 方法名:参数B …]; | 对象.方法名(参数列表); |
对象的创建 | 类名 对象指针 = [[类名 alloc] 初始化方法]; | 类名 对象指针=new 构造方法; |
对象的销毁 | dealloc方法 | 析构函数 |
继承 | 不支持多继承 | 支持多继承 |
成员变量存取权限控制 | @public、@protected、@private | public、protected、private |
嵌套调用方法 | [[[对象 方法1] 方法2] 方法3]; | 对象.方法1().方法2().方法3(); |
头文件引入 | #import “FileName.h” | #include “FileName.h” |
空指针 | nil | NULL |
简单变量定义 | 同C++相同 | int i = 0; |
循环控制语句 | 同C++相同 | for(int i=0; i<n; i++) |
条件控制语句 | 同C++相同 | if(判断条件)……
else …… |
避免命名冲突方法 | 使用名称前缀,如NS | 使用命名空间机制 |
上表通过Objective-C与C++的比较,对Objective-C的基本语法进行了讲解。如果其中的某些知识你暂时还无法深刻理解也不用担心,本章下面的内容将对这些知识进行深入的讲解。
关于Cocoa
在今后的学习中还会经常看到的一个概念是Cocoa。Cocoa是苹果公司的面向对象的开发环境,该环境下的任何类都要继承自NSObject,只有这样,该类的对象才可以获得运行时的基本能力。Cocoa的主要开发语言是Objective-C。Cocoa包含了两个核心框架:Foundation 框架和AppKit 框架。其中Foundation框架包含了Cocoa中最基本的一些类,如NSString、NSArray等,它们在一个应用程序中通常负责对象管理、内存管理、容器等相关数据结构的操作。AppKit 框架负责界面的设计,但在iPhone应用程序开发中,将使用UIKit框架来完成界面设计这一功能。如果你对.NET和C#的概念比较清楚,那么在这里,你可以类比它们之间的关系来对Cocoa与Objective-C的关系进行理解。
下面我们就来编写第一个程序,体会一下Objective-C这门语言。