iOS应用开发入门指南 --- 方法和消息
2014-01-27 06:45
274 查看
方法的声明由以下几个部分构成:方法类型标识符,返回类型,一个或多个方法签名关键字,以及参数类型和名称。下面的图中是实例方法 insertObject:atIndex: 的声明语句。
在实例方法中,声明的开头是一个 – 减号;而声明类方法时前面要使用 + 加号。下文的“类方法”章节将详细讲述类方法的概念。
方法的名称(insertObject:atIndex:)是一系列方法签名关键词联结而成,包括冒号。冒号表示将会出现参数。在上面的例子中,这个方法含有两个参数。如果某个方法没有参数,则需要将第一个(也是唯一一个)方法签名关键词后面的冒号省略掉。
当你需要调用一个方法时,就是要向实现了该方法的对象发送一个消息,简而言之,就是给对象发送消息。(虽然“发送消息”常常用作“调用方法”的近义词,但是在 Objective-C 的运行时中,实际情况是发送消息。)一个消息就是一个方法的名字带上该方法所需的参数信息(要和数据类型正确对应)。你向对象发送的所有消息都是动态调度的,以此来实现 Objective-C 语言的多态性。(多态性是指:不同类型的对象都能对同一种消息做出回应。)有时,所调用的方法是由接收消息的对象的类的父类实现的。
要调度一个消息,运行时要求正确的消息表达方式。消息表达式由一对方括号([ 和 ])把消息(以及所需的参数)包裹起来,接收消息的对象写在左边括号后边。比如,要向 myArray 变量所含的对象发送一个 insertObject:atIndex: 消息,你要按下面的语法进行书写:
[myArray insertObject:anObject atIndex:0];
为了避免声明大量局部变量来存储临时结果,Objective-C 允许嵌套消息表达式。每个嵌套的表达式返回的值都会作为一个参数,或者接收消息的对象,甚至是另一个消息。比如,你可以将上一个例子中的任意一个变量替换成用消息接收数值。这样一来,如果你还有一个叫做 myAppObject 的对象,它含有访问数组对象以及将对象插入数组的方法,你可以将那个例子改造成下面这样:
[[myAppObject theArray] insertObject:[myAppObject objectToInsert] atIndex:0];
Objective-C 还提供了点语法特性,用来访问存取方法。存取方法是对象的 get 和 set 语句,这里是封装的关键,封装是所有对象的重要特性。对象把自己的状态封装(或隐藏)起来,并提供一个能让所有实例访问这个状态的通用接口。利用点语法,之前的例子又可以被改写成:
[myAppObject.theArray insertObject:myAppObject.objectToInsert atIndex:0];
点语法还可以用来赋值:
myAppObject.theArray = aNewArray;
这个语法其实是 [myAppObject setTheArray:aNewArray]; 这个语句的另一种表述方式。
而且,请回想一下,在“你的第一个 iOS 应用”教程里,你已经用过点语法来对变量进行赋值了:
self.userName = self.textField.text;
下文中的“已声明的属性和存取方法”章节将向你详细介绍存取方法。
转自:http://www.kuqin.com/mobile/20120317/319009.html
相关文章推荐
- iOS应用开发入门指南 - 编写 Objective-C 代码
- iOS应用开发入门指南 - 编写 Objective-C 代码
- iOS 开发者成长路线图-《iOS 应用开发入门指南》
- iOS 应用开发入门指南,中文教程
- iOS 开发 初级:应用多语言化的方法
- JBoss EAP应用服务器部署方法和JBoss 开发JMS消息服务小例子
- 深入解析iOS应用开发中九宫格视图布局的相关计算方法
- iOS 开发 初级:应用多语言化的方法
- CocoaLumberjack的ios应用开发使用指南
- Knockout应用开发指南 第一章:入门
- Cocoa Touch 入门记——《精通 iOS 开发》学习心得(3) [标签栏实现多视图的方法(运用 xib)]
- iOS应用开发中实现页面跳转的简单方法笔记
- Knockout应用开发指南 第一章:入门
- iOS开发那些事--编写OCUnit测试方法-应用测试方法
- IOS应用开发-GCD编程入门
- IOS 初级开发入门教程(三)探究应用及视图的生命周期变化
- iOS开发那些事--编写OCUnit测试方法-应用测试方法
- ios开发--给应用添加新的字体的方法
- 解析iOS应用的UI开发中懒加载和xib的简单使用方法
- Sagit.Framework For IOS 开发框架入门教程5:消息弹窗STMsgBox