關于方法前的 + - 符號
前置加號(+)的方法為類方法,這類方法是可以直接用類名來調用的,它的作用主要是創建一個實例。相當于是靜態的方法。
前置減號(-)的方法為實例方法,必須使用類的實例才可以調用的。
而要把成員變量聲明為靜態的,必須使用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
新聞熱點
疑難解答