Objective-C中的可变长度参数

时间:2011-03-28 11:38:44

标签: objective-c arrays methods variadic

如何在Objective-C中创建具有可变长度参数的类方法?

例如,像-arrayWithObjects:

这样的方法
NSArray *array = [NSArray arrayWithObjects:@"1", @"2", @"3", nil];

3 个答案:

答案 0 :(得分:5)

看看varargs,例如: Apple Technical Q&A QA1405。方法是否是类方法无关紧要。

答案 1 :(得分:3)

采用可变参数的方法称为可变方法。 “...”是变量参数 例如,您的函数声明为:- (void)specialWithX:(NSInteger)x y:(NSInteger)y, ...;

有关其他信息,请查看Variable argument lists in Cocoa

答案 2 :(得分:3)

您需要的是可变函数。这些函数采用灵活数量的参数,例如NSLog[NSArray arrayWithObjects:...]等。

参见本教程:

http://www.numbergrinder.com/node/35

从我的回答中复制:Obj-C, trying to write an alternative to NSLog, but I want my function to concatenate like NSLog?