0
我提到this SO Answer爲目標創建可變參數函數C. 創建可變參數的功能我通過傳遞參數,像下面的測試代碼:iPhone在Objective C的問題
[self logMessage:@"string: %@\n number: %@\n image: %@",
@"asdf",
[NSNumber numberWithInt:23],
[UIImage imageNamed:@"local.png"]];
,並與編輯的NSLog代碼();
- (void)logMessage:(NSString *)format, ... {
va_list args;
va_start(args, format);
id arg = nil;
int i = 1;
NSLogv(format, args);
while ((arg = va_arg(args,NSString *))) {
NSLog(@"val: %d", i++);
/// Do your thing with arg here
//NSString *name = NSStringFromClass([arg class]);
//NSLog(@"string: %@", name);
}
va_end(args);
}
但產量如下:
2012-09-28 19:34:45.271 SIMO[2384:c07] string: asdf
number: 23
image: <UIImage: 0x8151f80>
2012-09-28 19:34:45.273 SIMO[2384:c07] val: 1
2012-09-28 19:34:45.273 SIMO[2384:c07] val: 2
2012-09-28 19:34:45.274 SIMO[2384:c07] val: 3
2012-09-28 19:34:45.274 SIMO[2384:c07] val: 4
2012-09-28 19:34:45.274 SIMO[2384:c07] val: 5
2012-09-28 19:34:45.275 SIMO[2384:c07] val: 6
2012-09-28 19:34:45.275 SIMO[2384:c07] val: 7
2012-09-28 19:34:45.276 SIMO[2384:c07] val: 8
這告訴說法是8,但我通過只有3個(的NSString,NSNumber的,UIImage的) 我不能讓這個概念..你能否澄清我 任何人都可以澄清這一點
正常工作,因爲我預計謝謝.... –