Objective-c:访问方法中的可变参数 [英] Objective-c : Accessing variadic arguments in method

查看:110
本文介绍了Objective-c:访问方法中的可变参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


可能存在重复:



blockquote>



以下是一个具有可变参数的方法示例。

   - (void)numberOfParameters:group,... {
NSLog(@%@,group);



$ b在上面的方法中,我知道要访问第一个可变参数。
您是否可以帮助我访问其他人?



我只是通过 ObjC.pdf &我正在阅读第35页和第行号是4

解决方案

看到这个几乎相同问题

   - (void)yourMethods:(id)string1,... {

NSMutableArray * arguments = [[NSMutableArray alloc] initWithArray:nil];
id eachObject;
va_list argumentList;
if(string1)
{
[arguments addObject:string1];
va_start(argumentList,string1);
while((eachObject = va_arg(argumentList,id)))
{
[arguments addObject:eachObject];
}
va_end(argumentList);
}
NSLog(@%@,arguments);
}

最后使用 nil 参数调用它, :
$ b $ pre $ [object yourMethods:arg1,arg2,arg3,nil]; //对象可以是自己
code>


Possible Duplicate:
How to create variable argument methods in Objective-C
Variable number of method parameters in Objective C - Need an example

Following is an example of a method having variadic arguments.

- (void)numberOfParameters:group,... {
    NSLog(@"%@",group);
}

In above method, I know to access the first one of the variadic arguments. Would you please help me for accessing the others as well?

I am just going through ObjC.pdf & I am reading page number 35 & line number is 4

解决方案

See this almost same question

-(void)yourMethods:(id)string1, ...{

    NSMutableArray *arguments=[[NSMutableArray alloc]initWithArray:nil];
    id eachObject;
    va_list argumentList;
    if (string1) 
    {
        [arguments addObject: string1];
        va_start(argumentList, string1); 
        while ((eachObject = va_arg(argumentList, id)))    
        {
             [arguments addObject: eachObject];
        }
        va_end(argumentList);        
     }
    NSLog(@"%@",arguments);
}

Call it with nil parameter at the end as:

[object yourMethods:arg1,arg2,arg3,nil];// object can be self

这篇关于Objective-c:访问方法中的可变参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆