方法前面的 +/- 号代表函数的类型:加号(+)代表类方法(class method),不需要实例就可以调用,
与C++ 的静态函数(static member function)相似。减号(-)即是一般的实例方法(instance
method)。
这里提供了一份意义相近的C++语法对照,如下:
Objective-C定义一个新的方法时,名称内的冒号(:)代表参数传递,不同于C语言以数学函数的括号来
传递参数。Objective-C方法使得参数可以夹杂于名称中间,不必全部附缀于方法名称的尾端,可以提高
程序可读性。设定颜色RGB值的方法为例:
这个方法的签名是setColorToRed:Green:Blue:。每个冒号后面都带着一个float类别的参数,分别代表
红,绿,蓝三色。
Implementation
实现区块则包含了公开方法的实现,以及定义私有(private)变量及方法。 以关键字
@implementation作为区块起头,@end结尾。
@interface MyObject : NSObject {
int memberVar1; // 实体变量
id memberVar2;
}
+(return_type) class_method; // 类方法
-(return_type) instance_method1; // 实例方法
-(return_type) instance_method2: (int) p1;
-(return_type) instance_method3: (int) p1 andPar: (int) p2;
@end
class MyObject : public NSObject {
protected:
int memberVar1; // 实体变量
void * memberVar2;
public:
static return_type class_method(); // 類方法
return_type instance_method1(); // 实例方法
return_type instance_method2( int p1 );
return_type instance_method3( int p1, int p2 );
}
- (void) setColorToRed: (float)red Green: (float)green Blue:(float)blue; /* 宣告方
法*/
[myColor setColorToRed: 1.0 Green: 0.8 Blue: 0.2]; /* 呼叫方法*/
@implementation MyObject {
int memberVar3; //私有實體變數
}
+(return_type) class_method {
.... //method implementation
}