Objective-C中的可变参数如何处理?
我照书上的方法,写了一个函数来处理可变参数,为什么老是出现错误呢?
-(void)sayHelloTo:(NSString *)first, ...{
va_list names;
if (first) {
va_start(names, first);
NSString* name = nil;
while ((name = va_arg(names, id))) {
NSLog(@"%@", name);
}
va_end(names);
}
}
运行时,名字是都打印出来了,不过最后出现了异常,异常信息如下:Thread1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT)
请问这是什么原因?本人是初学者,谢谢!!!!
--------------------编程问答--------------------
-(void)sayHelloTo:(NSString *)first{
va_list names;
if (first) {
va_start(names, first);
NSString* name = nil;
while ((name = va_arg(names, id))) {
NSLog(@"%@", name);
}
va_end(names);
}
}
这样就可以了....没有那个,......的意思是还可以用更多的参数例如
-(void)sayHelloTo:(NSString *)first second:(NSString *)sec 是这个意思........ --------------------编程问答-------------------- -(void)sayHelloTo:(NSString *)first, ... NS_REQUIRES_NIL_TERMINATION {
这样也可以
补充:移动开发 , iPhone