Objective C中可变数量的方法参数 - 需要一个例子

Con*_*sed 3 parameters objective-c optional-parameters

Objective C Programming Guide(在"Object Messaging"部分下),

采用可变数量参数的方法也是可能的,尽管它们有点罕见.在方法名称结束后,使用逗号分隔额外参数.(与冒号不同,逗号不被视为名称的一部分.)在下面的示例中,假想的makeGroup:方法传递一个必需参数(组)和三个可选参数:

[接收者makeGroup:group,memberOne,memberTwo,memberThree];

我试图创建这样一个方法,它显示一个错误

"预期';' 方法原型之后"

当我尝试在我的接口文件(.h文件)中声明以下函数时.

- (void) printMyClass: (int) x, (int) y, (int) z;
Run Code Online (Sandbox Code Playgroud)

任何人都可以举例来创建像这样的方法 makeGroup

谢谢

Neo*_*Neo 14

你可以看到这个链接.

在头文件中,定义末尾有三个点的方法

-(void)yourMethods:(id)string1,...;
Run Code Online (Sandbox Code Playgroud)

并在你的实现文件中写入方法体

-(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)

现在打电话给你的方法

[self yourMethods:@"ab",@"cd",@"ef",@"gf",nil];
Run Code Online (Sandbox Code Playgroud)

注意:记得把nil放在最后