Objective-c:在方法中访问可变参数

Sag*_*ari 3 c methods function objective-c variadic-functions

可能重复:
如何在Objective-C中创建变量参数方法在Objective C中
可变数量的方法参数 - 需要一个示例

以下是具有可变参数的方法的示例.

- (void)numberOfParameters:group,... {
    NSLog(@"%@",group);
}
Run Code Online (Sandbox Code Playgroud)

在上面的方法中,我知道访问第一个可变参数.你也可以帮助我访问其他人吗?

我正在浏览ObjC.pdf ,我正在阅读第35页,行号为4

Neo*_*Neo 6

看到这个几乎相同的问题

-(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);
}
Run Code Online (Sandbox Code Playgroud)

最后用nil参数调用它:

[object yourMethods:arg1,arg2,arg3,nil];// object can be self
Run Code Online (Sandbox Code Playgroud)

  • 应该注意的是,这种方法需要一个"nil"作为最终参数,否则它会在参数结束时产生分段错误. (2认同)

归档时间:

查看次数:

2804 次

最近记录:

12 年,11 月 前