OC多个形参

实现多个形参的方法

#import <Foundation/Foundation.h>


@interface VarArgs :NSObject


//带有多个形参 逗号+三个点 ,...

//可变形参的声明;

- (void)test:(NSString *)name,...;


@end


#import "VarArgs.h"


@implementation VarArgs




- (void)test:(NSString *)name, ...

{

    //定义一个va_list指针变量argList,指向可变参数的列表

   va_list argList;

    // va_list一个类型,定义指向可变参数列表的指针变量

   if(name)

    {//如果第一个参数name存在,才需要处理后面的参数

        //name参数不在可变参数的列表中,因此需要先处理name参数

       NSLog(@"%@",name);

        

        //va_start(<#ap#>, <#param#>)一个函数 该函数指定开始处理可变形参的列表,并让指针变量指向可变形参列表的第一个参数;

        

        va_start(argList, name);//arglist指向第一个可变参数列表的第一个参数,开始提取可变参数列表的参数;

        

        //va_arg(argList, id)用于提取arglist指针当前指向的参数,并将指针移动指向下一个参数。

        //arg变量用于保存当前获取的参数,如果参数不为nil进入循环体

       NSString *arg = va_arg(argList,id);

        

        //va_arg(<#ap#>, <#type#>)该函数分返回获取指针当前指向的参数的值,并将指针移动到指定下一个参数

       while (arg) {

            

           //打印出每一个参数;

           NSLog(@"%@",arg);

            arg=va_arg(argList, id);

            //再次提取下一个参数,并将指针移动到指向下一个参数;

            

        }

        va_end(argList);//释放arglist指针,结束提取;

        

      //va_end(<#ap#>) 结束处理可变形参,释放指针变量。

    }

    

    

    

}

@end

#import <Foundation/Foundation.h>

#import "VarArgs.h"

int main(int argc,const char * argv[])

{


    @autoreleasepool {

        

        

        //个数可变的形参只能位于形参列表的最后,且一个方法最大只能包含一个长度可变的形参;

        

       VarArgs * var = [[VarArgsalloc]init];

        [var test:@"C语言程序设计",@"objective-c程序设计",@"UI",@"网络",@"项目",@"毕业",@"月薪上万!你还在等什么,奋斗吧少年!",nil];

        

        

    }

   return 0;

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值