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参数结尾的原因

  • 相关阅读:
    图片上传
    解决Vuex持久化插件-在F5刷新页面后数据不见的问题
    vue登录
    拖动排序的vue组件
    vue图片懒加载
    vue中使用图片预加载
    前端架构知识体系
    html判断IE版本
    HighCharts 在IE8下饼图不显示的问题
    新一代调试王者Console
  • 原文地址:https://www.cnblogs.com/HJiang/p/7462207.html
Copyright © 2011-2022 走看看