2014-12-31 118 views
0

當一個方法聲明有兩個或多個參數,我認爲它總是使用withVariable或「create」或「and」解釋時,我們初學者會感到困惑,我們認爲它是強制的一部分語法,這是令人困惑的。Obj -C方法聲明類/對象

例如:

-(void) createBudget:(double) aBudget withExchangeRate: (float) anExchangeRate; 

格式是

-(void) someMethod:(someType) value1 secondValue: (anotherType) value2 thirdValue: 

(anotherType)值3;

所以,如果下面的聲明是正確的,我終於明白了。請確認:

-(void) myMethod: (int) x aSecondValue: (float) y aThirdValue: (double) z; 

和這3種方法的名稱是

  • 1.createbudget:withExchangeRate:---- //方法有兩個冒號因此兩個參數
  • 2.someMethod: secondValue:thirdValue:---- //方法有三個冒號因此三個參數
  • 3.myMethod:aSecondValue:athirdValue:--- //方法有三個冒號因此三個參數

請確認「with」不是強制性語法的一部分,並且我的第三個方法聲明是可接受的。

Thanx。

回答

1

的實際方法簽名是:

createbudget:withExchangeRate: 
someMethod:secondValue:thirdValue: 
myMethod:aSecondValue:athirdValue: 

「與」(在最右邊的參數的結尾註意額外的冒號),「和」 ..絕不是強制性的。你可以使用任何你喜歡的措辭,但我認爲這有助於保持清晰。

+0

Thanx我剛剛編輯並在最後一個冒號中添加了回覆! –

+0

因此,在以下陳舊的樣式中擴展,聲明和初始化一個NSNumber:NSNumber * eTransaction = [[NSNumber alloc] initWithInt:100];可以讀取NSNumber * eTransaction = [[NSNumber alloc] x:100];換句話說,initWithInt只是任何變量名稱而不是實際的Obj-C命令? –

+0

不是真的.. initWithInt是實際的方法名稱 - 您可以選擇任何您喜歡的方法。在這種情況下,initWithInt *就是*方法(只接受一個參數 - 因此冒號) – MutenFuzz