Objective_C语言介绍及开发流程介绍

更新时间:2023-05-22 00:34:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Objective_C入门及开发环境 Objective_C入门及开发环境 介绍柳行刚

Objective-C概述Objective-C是一种简单的计算机语言,它可以用来 设计复杂的面向对象程序。 Objective-C扩展了标准ANSI C语言,增加了一些定义类、方法以及其它结构的语法, 提升了类的动态扩展。 许多传统面向对象的思想,比如 封装、继承、多态,都会在Objective-C中体现。

Objective-C与C语方的关系Objective-C是C语言ANSI版本的超集, 支持和C相同的基本语法。用C代码,你可 以定义头文件和源码文件,以从详细实现 的代码中分离出公开的声明。

Objective-C代码的扩展名扩展名 文件类型

.h文件

头文件。头文件包含类、类型、函数、 常量的声明。

.m

源码文件。这是源码文件的典型扩展名, 可以包含Objective-C和C代码。

.mm

源码文件。使用该扩展名的源文件除了 Objective-C和C代码,还可以包含C++代 码。 该扩展名仅用于在你的Objective-C 代码中引用到的C++类和特性。

Objective-C类的定义和大多数其它面向对象语言一样,Objective-C里的 类也提供基本的结构,用来封装带有行为的一些数据。一 个对象是一个类的运行实例,包含类中声明变量的实例在 内存中的复制,以及指向该类的方法。 Objective-C中类的定义,要求两个明显的部分:接口 和实现。接口部分包含类的声明、定义成员变量,及与此 类关联的方法。接口通常在a .h 文件里。实现部分包含类 的方法实际代码。实现通常在 a .m 文件里。

Objective-C类实例

Objective-C类实例说明上图声明MyClass类的语法,它继承自Cocoa的基类 NSObject。这个类的声明开始于 @interface 编译指令, 结束于 @end 指令。仅跟着类名的(以冒号分割)是父类名。 类的实体变量(有时简称ivars,在一些其它语言中称作成 员变量)声明在以大括号({和})括起来的代码块中。实 体变量后面是类的方法声明列表。以分号做为每个实体变 量和方法的结束标记。

Objective-C的变量Objective-C支持包含对象的强弱两个类型的变量。在变量声明时, 强类型的变量包含类名,弱类型的变量使用类型 id 代替对象。弱类 型变量在像集合类中使用频繁,在一个集合中的对象的实际类型可能 是未知的。如果你使用过强类型的语言,你可能会认为使用弱类型会 引起问题,但是在Objective-C程序中它们实际上提供了很大的灵活性 和更强大的动态性。

强类型变量示例: MyClass*myObject1; 弱类型变量示例: id*myObject2;

Objective-C类的方法Objective-C中的类可以声明两种类型的方法:实体 方法和类方法。一个实体方法是在这个特定类的实例中才 能执行的方法,换句话说,在调用实体方法前,你必须首 先要

创建这个类的实例。方法的声明由方法的类型标识符、 一个返回值类型、一个或多个签名关键字、参数类型和名 称信息组成。

实体方法 insertObject:atIndex:的声明格式

实体方法 insertObject:atIndex:的声明说明声明开始于减号(-) ,减号用来标识这是一个实体方 法。这个方法的实际名称 (insertObject:atIndex:) 是所有 签名关键字的拼接,包括冒号。冒号声明了当前的参数.如 果方法没有参数,你就可以省略第一个签名关键字。在这 个例子中,该方法有两个参数。

Objective-C实体方法调用当你想调用上面这个方法时,你可以通过向对象 通信 。 通信内 容是方法签名和方法要求参数信息。 信息是用中括号 ([ 和 ])包裹的。 在中括号里面,接收信息的对象在左边,信息(包括信息要求的参数) 在右边。例如,发送信息insertObject:atIndex: 到变量名为 myArray 的对象,你会用到下面的语法: [myArray insertObject:anObject atIndex:0];

Objective-C类方法声明你使用类方法来创建类的新实例,或访问有关此类的 一些共享信息。类方法的声明语法除了一点不同,其它完 全和实体方法一样。用加号(+)来代替用减号(-)作为方法类 型的标识符。

Object-C类实例@implementation MyClass - (id)initWithString:(NSString *)aName { self = [super init]; if (self) { name = [aName copy]; } return self; }

+ (MyClass *)createMyClassWithString: (NSString *)aName { return [[[self alloc] initWithString:aName] autorelease]; } @end

声明属性声明属性是代替声明及简单实现存取器方法的方便形式。 在类接口里,可以包含属性声明和方法声明。基本的定义用 @property 编译指令,之后是类型信息和属性名称。你也可以定制配置属性,比如定 义存取器方法如何执行。下面的例子展示一个简单属性的声明: @property BOOL flag; @property (copy) NSString *nameObject; // 在赋值时复制对象。 @property (readonly) UIView *rootView; //声明一个只读方法

每个可读属性指定一个与该属性同名的方法。每个可写属性指定一个额外的方法,格式为 setPropertyName, 属性名的首字母要大写。 在你的类的实现里,你可以使用 @synthesize 编译指令来要求编译器依照声明规格创建方法: @synthesize flag; @synthesize nameObject; @synthesize rootView;

你可以合并 @synthesize 语句到一行中,如果你愿意: @synthesize flag, nameObject, rootView;

协议一个协议声明的方法可以被任意类实现。协议本身没有类。他们只是简单地定义一个接口 让其它对象可靠的实现。当你在你的类里实现一个协议的方法时,就可以说你的类符 合那个协议了。 协议被频繁用于为 委拖 对象指定接口。看协议、委托以及其它对象之间的相互作用的最好 方式,就是看

一个例子。 UIApplication 类实现一个应用程序要求的行为。不用强迫你实现子类 UIApplication 来接 收有当前程序状态的简单通知。而是 UIApplication 类通过调用它分配的委托对象的具 体方法来发送那些通知。实现 UIApplicationDelegate 协议方法的对象能接收那些通知, 并提供恰当的答复。通过将协议的名称用“<>”包裹起来放到它继承的类后面,来指 定你的类遵循或采用的协议。你不用去声明你实现协议的方法。 @interface MyClass : NSObject <UIApplicationDelegate, AnotherProtocol> { } @end 协议的声明看起来比较类似一个类的接口,不同的是协议没有父类也不能定义实体变量。 下面的例子展示了含有一个方法的简单协议: @protocol MyProtocol - (void)myProtocolMethod; @end

iPhone开发环境介绍硬件: 1.苹果电脑, 必须是基于Intel的Macintosh计算机。 2.iPhone或iPod Touch,主要用来测试编写好的程序。 软件: 1.苹果系统MacOS。 2.iPhone SDK(请从/iphone/下载最新版 SDK),SDK中包含苹果公司的集成开发环境Xcode,iPhone模拟器 及其它一些开发工具。 开发环境的简单介绍 开发环境主要包括 Xcode (主要开发工具) Interface Builder (界面快速设计工具) iPhone Simulator (iPhone模拟器) SDK(Software Development Kit,软件开发工具包)

本文来源:https://www.bwwdw.com/article/tnj4.html

Top