当前位置:编程学习 > wap >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,