iOS开发-OC可选参数函数

什么是可选参数

可选参数就是像NSLog()、c语言中printf一样,参数是不指定多少个的,调用的时候,传入几个参数就读取几个参数。在实际编程中是非常实用的。

例子


[self test:@"%@", @"aa", @"bb"];


- (void)test:(NSString *)sql,... {
    va_list var;
    va_start(var, sql);
    
    NSLog(@"%@", sql);
    NSString *a = va_arg(var, NSString *);
    
    NSLog(@"%@", a);
    
    NSString *b = va_arg(var, NSString *);
    
    NSLog(@"%@", b);
    va_end(var);
}

怎么定义

在OC中,实现函数的时候,至少要有一个参数在指定的,剩下的参数才是可选的。如上述例子,在实现的在后面加上省略号就可以定义一个可选参数函数了。

怎么使用传进来的参数

参数传进来,自然是要使用的,在OC中,是使用一个类似指针的东西来使用传入的参数的。在上面的例子中,var就是这个指针,用函数“va_arg”循环取出指针所指向的值,直到取出的值为空(例子中,取出的参数依次为:aa, bb),取出来的每个值都是传进来的参数。

怎么使用这个函数

[self test:@"%@", @"aa", @"bb"];

直接这样调用就好了。参数指针依次指向:aa、bb。




本文已在版权印备案,如需转载请访问版权印。