美文网首页iOS微知识点
Objective可变参数,va_list,va_start,v

Objective可变参数,va_list,va_start,v

作者: Corbin___ | 来源:发表于2018-04-03 10:51 被阅读2次

    1.va_list,va_start,va_arg,va_end

    - (void)viewDidLoad {
        [super viewDidLoad];
        
        [self list:@"AAA",@"BBB",@"CCC",@"DDD",nil];
        [self stringTest:@"AAA",@"BBB",nil];
        
    }
    
    - (void)list:(NSString *)string,... {
        
        /*
         # 前言:
        这里有个概念:string是固定参数,不是可变参数,可变参数是指...
        也就是[self list:@"AAA",@"BBB",@"CCC",@"DDD",nil];
        中 @“AAA”是固定参数 @"BBB",@"CCC",@"DDD"为可变参数
         */
        
        // 定义一个指向个数可变的参数列表指针
        va_list argsList;
        
        // 使这个argsList指针指向参数列表的第一个参数,即指针->@"BBB"
        va_start(argsList, string);
        
        while (string) {
            NSLog(@"%@",string);
            
            // 返回参数列表中指针argsList所指的参数,返回类型为type,并使指针argsList指向参数列表中的下一个参数
            string = va_arg(argsList, NSString *);
        }
        
        // 清空参数列表,并置参数指针argsList无效
        va_end(argsList);
    }
    

    输出结果为


    image.png

    2.(instancetype)initWithFormat:(NSString *)format arguments:(va_list)argList;作用

    image.png

    相关文章

      网友评论

        本文标题:Objective可变参数,va_list,va_start,v

        本文链接:https://www.haomeiwen.com/subject/wadqhftx.html