加載(INT A,INT B)在這裏,我們傳遞兩個參數INT一個,INT B,
我們可以通過參數n與不同的數據類型等int,float,long, 有可能嗎?
我的意思是我只需要編寫一個方法來處理n個參數。
加載(INT A,INT B)在這裏,我們傳遞兩個參數INT一個,INT B,
我們可以通過參數n與不同的數據類型等int,float,long, 有可能嗎?
我的意思是我只需要編寫一個方法來處理n個參數。
是的,可以將具有不同數據類型的參數傳遞給Objective-C方法。我假設你在談論Objective-C,因爲這個問題被標記爲iphone。
例如,你可以有喜歡的方法:
- (void)foo:(int)foo bar:(float)bar baz:(long)baz {
// ...
}
如果你在談論C,你可以有一個函數:
void myfunc(int foo, float bar, long baz) {
// ...
}
如果你想寫一個具有不同的功能大小參數列表(因此它可能需要1參數,或2參數,或3,...),我建議你看看這個blog post which discusses variable argument lists in Objective-C/Cocoa或Apple's technical Q&A on variable argument lists。
+1給GregInYEG。到了這一點,並很好地解釋了答案 – 2011-03-18 19:07:31
+1是的,可變參數是要走的路。 – TechZen 2011-03-18 19:14:51
- (int)add:(int)number1 to:(int)number2 {
return number1 + number2;
}
使用[obj add:2 to:4]調用它;其中obj是接收添加消息的對象。
您可以使用上述任何類型的參數來實現您的想法。例如:
- (void)add:(int)number1 to:(float)number2 {
//print result here
}
標準類型轉換等將適用於任何編程語言。
如果您正在討論完全任意數量的參數,請參閱Objective C(Google it)中的Variadic函數。在第一個搜索結果頁面上有很多很好的教程。
任何事情都是可能的,但我非常肯定它需要一些嚴重的黑客手段才能使其適用於可變數據類型。如果您可以將需求更改爲特定數據類型的可變數量,那麼您應該看看「可愛與愛」中的優秀教程:variable-argument-lists-in-cocoa
您想做什麼?這個問題太模糊了。 – bbum 2011-03-18 18:47:34
您正在使用哪種語言?你可能是泛型:http://stackoverflow.com/questions/848641/are-there-strongly-typed-collections-in-objective-c(關於泛型在目標c中的stackoverflow文章) – Kevin 2011-03-18 18:47:58
對於你用Objective- C。您在頂部寫的是沒有客觀的方法。但是你可以傳遞n個參數。你可以使用一個數組。 ;-)我很抱歉,我沒有時間寫一個真正的答案。如果明天沒有答案,我會寫一個。 – 2011-03-18 18:50:00