快捷搜索:

iPhone开发资料之Objective-C语言简介

  【IT168 技术文档】Objective-C是一种简单的计算机语言,支持复杂南通的面向对象编程。Objective-C从标准的ANSI C语言扩展而来,并提供了定义类、方法和属性的语法,还有其它结构来促进类的动态扩展。类的语法和设计把部分基于第一种面向对象的编程语言 Smalltalk。

  如果你有使用面向对象语言的经验,接下来的信息会帮你学习到Objective-C基本的语法。许多传统的面向对象概念,如封装、继承和多态,都会在 Objective-C中出现。但是会存在一些重要的不同之处,不过这篇文章会讲解这些不同,而且还可以查到更加详细的信息。

  如果你从来没有使用过面向对象语言,在开始之前,至少需要基本理解相关的概念。对象和面向对象结构的使用是设计iPhone程序的基础,而且理解它们是怎样交互的是创建程序的必要条件。

  要了解关于Objective-C更加详细的信息和语法,请查阅Objective-C程序设计。

  Objective-C:C语言的超集

  Objective-C是C语言的ANSI版本的超集,支持相同的基础语法。与C语言相同,Objective-C也会定义头文件和源文件,将公共的声明和实现分离。

Objective-C头文件使用的文件扩展名列在下表中。 

扩展名                         代码类型
.                                        头文件。头文件中包含类、类型、函数和常量的声明
.m                                    源文件。这是源文件的一种典型扩展,可以包含C代码和Objective-C代码
.mm                                源文件。这种源文件除了可以包含C代码和Objective-C代码之外,还可包含C++代码

  当需要在头文件包含头文件时,可以使用标准的#include预编译指令,但是Objective-C提供了更好的方法。#import指令和#include指令是一样的,除了它能保证相同的文件永远不会被引用多次。Objective-C的示例和文档都建议使用#import,你自己的代码也应该如此。

  Strings

  作为C的超集,Objective-C在指定字符串时,具有和C一样的约定。换句话说,单个字符使用单引号,字符串会使用双引号包围。但是,大多数Objective-C框架经常不使用C样式的字符串。取而代之,大多数框架将字符串封装在一个NSString对象中。

  NSString类是字符串的对象载体,它具有希望的所有优点,包括为处理任意长度的字符串内置的内存管理、支持Unicode、Printf风格的格式化优点等等。但由于一些字符串经常使用,Objective-C提供了一个速记符号从常量创建NSString对象。使用这用速记,你所要做的仅仅是在一个正常的双引号包含的字符串之前加上一个@符号,如下示例:

NSString* myString = @"My String "
NSString
* anotherString = [NSString stringWithFormat:@"%d %s"1@"String"]; 

// Create an Objective-C string from a C string 
//从C字符串创建Objective-C字符串 
NSString* fromCString = [NSString stringWithCString:"A C string" encoding:NSASCIIStringEncoding]; 

  Classes类

  正如大部分其它面向对象语言一样,Objective-C中的类是一个基本的结构体,封装了一些数据以及操作这些数据的动作。对象是类运行时的实例,包含类中声明的成员变量和类方法的指针在内存中的拷贝。

  Objective-C中创建一个类需要截然不同的两个部分:接口和实现。接口部分包含类的声明,还会定义成员变量和与类相关联的方法。实现部分包含类方法的实际实现代码。图1显示了声明一个叫做MyClass的类的语法,它继承了NSObject基类。类声明会以@interface预编译指令开始,以 @end指令结束。类名之后(有一个冒号分开)是父类的名称。类的成员变量在大括号包含的代码中声明({和})。在成员变量之后的代码块是类声明的方法列表。每个成员变量和方法的声明之后都要以分号结尾

图1 类的声明

  

iPhone开发资料之Objective-C语言简介

您可能还会对下面的文章感兴趣: