不定個數(shù)的參數(shù)的處理
- 場景1:定義用于格式化字符串的宏刻坊,后面的參數(shù)個數(shù)為0+娜汁,參數(shù)個數(shù)可變;
- 場景2:使用反射調(diào)用方法時斧抱,后面的參數(shù)個數(shù)未知常拓,0個或多個;
需求:在以上場景中辉浦,需要將后面可變參數(shù)作為一個整體加以引用弄抬。
方案:C語言有variadic functions,iOS與之類似
- 方法聲明中使用
...
表示不定個數(shù)的參數(shù)
+ (NSString*)format:(NSString*)first, ...
{
NSString* string;
va_list args; //聲明指針變量args
va_start(args, first); //初始化args為first參數(shù)后面的部分宪郊;
string = [[NSString alloc] initWithFormat:first arguments:args]; //使用變量args
va_end(args); //釋放指針變量args
return [string autorelease];
}
參考資料: