zoukankan      html  css  js  c++  java
  • OC方法可变参数

    OC可变参数:

    - (void)executeSql:(NSString *)sql,... __attribute__((sentinel)){
        
        NSMutableString *result = [NSMutableString stringWithFormat:@"%@",sql];
        
        va_list params;//定义一个指向个数可变的参数列表指针
        va_start(params,sql);//va_start  得到第一个可变参数地址
        NSString *arg;
        while((arg = va_arg(params, NSString *))){ //va_arg 指向下一个参数地址
            if(arg){
                [result appendFormat:@" %@",arg];
            }
        }
        va_end(params);//置空
        
        NSLog(@"%@",result);
        
    }
    

     

    调用:
    [self executeSql:@"select * from test",@"where" ,@"age =",@"12",nil];
    

    使用__attribute__((sentinel))语法可以告诉编译器这是一个需要哨兵参数的函数。它的作用就是告诉函数没有参数了。这也是为什么ObjC[NSArray arrayWithObjects: ...,nil]最后必须以nil参数结尾的原因

  • 相关阅读:
    IP通信02
    h5网页 微信分享给好友,朋友圈-tp5
    微博常用链接
    Sublime Text3之安裝Emmet及使用技巧
    JS 写入到文件
    PHP之httpRequest
    图片上传预览
    滚动数字时钟
    旋转
    创建JavaScript标准对象--面试经常遇到的问题
  • 原文地址:https://www.cnblogs.com/HJiang/p/7462207.html
Copyright © 2011-2022 走看看