6
我想模仿[NSArray arrayWithObjects:]
的功能,它允许我以这种方式输入参数:[MyClass doSomethingWithObjects: @"str1",@"str2",nil]
。假设这是可能的,我该如何声明这一点?如何使用逗号分隔多个参数来制作objc函数?
我想模仿[NSArray arrayWithObjects:]
的功能,它允许我以这种方式输入参数:[MyClass doSomethingWithObjects: @"str1",@"str2",nil]
。假设这是可能的,我该如何声明这一点?如何使用逗号分隔多个参数来制作objc函数?
在这里找到解释: http://cocoawithlove.com/2009/05/variable-argument-lists-in-cocoa.html
//interface:
- (void)foo:(NSString *)firstString, ... NS_REQUIRES_NIL_TERMINATION;
//implementation:
- (void)foo:(NSString *)firstArg, ...
{
va_list args;
va_start(args, firstArg);
for (NSString *arg = firstArg; arg != nil; arg = va_arg(args, NSString*))
{
[self bar:arg];
}
va_end(args);
}
做了一些搜索的,它是可能的,他们被称为可变Arguement列表或va_list的秒。自己解决这个问题,如果我第一次得到它,会在这里发布。 – 2011-05-22 14:16:10
采用可变参数的方法称为[variadic methods](http://developer.apple.com/library/mac/#qa/qa1405/_index.html)。 – albertamg 2011-05-22 14:26:32
[输入数组的方法]的可能重复(http://stackoverflow.com/questions/4893891/method-with-an-array-of-inputs) – Petesh 2013-10-26 09:56:27