关于方法前的 + - 符号
前置加号(+)的方法为类方法,这类方法是可以直接用类名来调用的,它的作用主要是创建一个实例。相当于是静态的方法。 前置减号(-)的方法为实例方法,必须使用类的实例才可以调用的。 而要把成员变量声明为静态的,必须使用static关键字 关于Ob-c的函数的参数问题 Object-c的一个方法可以包含多个参数,除了第一个参数外,后面的所有参数都要写名字。
多个参数的写法 (方法的数据类型) 函数名: (参数1数据类型) 参数1的数值的名字 参数2的名字: (参数2数据类型) 参数2值的名字 …. ; 举个例子,一个方法的定义: -(void) setKids: (NSString *)myOldestKidName secondKid: (NSString *) mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName; 实现这个函数的时候: -(void) setKids: (NSString *)myOldestKidName secondKid: (NSString *) mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName{ 大儿子 = myOldestKidName; 二儿子 = mySecondOldestKidName; 三儿子 = myThirdOldestKidName; } 调用的时候: Kids *myKids = [[Kids alloc] init]; [myKids setKids: @”张大力” secondKid: @”张二力” thirdKid: @”张小力”]; 而如果你用c#写这个方法,大致的写法可能是 public void setKids( string myOldestKidName, string mySecondOldestKidName, string myThirdOldestKidName) { … } 调用的时候大概的写法可能是: Kids myKids = new Kids(); myKids.setKids (“张大力”, “张二力”, “张小力”); 明白了吧?其实不怎么难看懂。 基本上,如果你能了解下面这段代码的转换关系,你Objective-C的语法也就懂了八成了: [[[MyClass alloc] init:[foo bar]] autorelease]; 转换成C#或者Java的语法也就是:
MyClass.alloc().init(foo.bar()).autorelease();
互联网资讯:互联网的一点事 www.yidin.net