根據我的理解C專家Objective-C是一種動態綁定語言,不允許重載類中的任何方法。Objective-C中的函數重載?
但有一兩件事讓我感到憤怒,如果我寫兩個方法具有相同的名稱,但不同數量的參數列表,如:
// Which is not allowed in objective-c
-(void)updateValue:(int)intVal{
}
-(void)updateValue:(float)floatVal{
}
但其中的Objective-C允許第二種情況是:
// Allowed in Objective-C
-(void)updateValue:(int)intVal{
}
-(void)updateValue:(float)floatVal :(int)intVal{
}
雖然這兩種情況都是方法重載。
現在我的問題是爲什麼允許第二種情況。
在第二種情況下是否改變Method Name的方法有兩個參數?或者是其他東西 ?
請解釋一下。
不要寫' - (無效)updateValue:(浮點)floatVal:(INT) intVal'。至少,編寫' - (void)updateValue:(float)floatVal andSomething:(int)intVal'。否則,簽名是'-updateValue:','-updateValue ::'(當沒有參數介紹時)和'-updateValue:andSomething:'。 – Larme