#import <Foundation/Foundation.h>
@interface VarArgs : NSObject
- (void)test:(NSString *)name,...;
- (int)test2:(int)num1,...;
@end
@implementation VarArgs
- (void)test:(NSString *)name, ...
{
va_list arglist;//定义一个va_list指针变量,指向参数列表
if(name)
{
NSLog(@"%@",name);
va_start(arglist, name);//让arglist指向可变参数列表的第一个参数,开始提取可变参数列表的参数
NSString *arg = va_arg(arglist, NSString*);//提取当前arglist指向的参数,并移动指针,指向一个参数
while(arg)//循环提取参数,直到参数nil
{
NSLog(@"%@",arg);
arg = va_arg(arglist, NSString *);
}
va_end(arglist);//释放arglist指针,结束提取
}
}
//可变参数中,核心的:va_list : 可变参数列表的指针
// va_start : 指向参数列表的第一个参数
// va_arg(va_list, type),提取参数,并指向下一个参数
// va_end 结束提取,释放指针
- (int)test2:(int)num1,...
{
va
objective-c基础之可变参数列表va_list
最新推荐文章于 2019-05-27 19:03:18 发布
本文介绍了Objective-C中处理可变参数的方法,通过`Va_list`、`va_start`、`va_arg`和`va_end`来实现可变参数列表的处理。示例代码展示了如何在方法中接收和处理字符串及整数类型的可变参数,并在`main`函数中进行调用。
摘要由CSDN通过智能技术生成