[NSString stringWithFormat:];即使它被声明为NSString而不是NSArray并且只有一个冒号,它可以采用多个参数.
我怎么能用我自己的方法,这就像是NSLog的替代品,它写入文本字段,所以经常使用它,我不想继续添加更多的方括号.
最佳答案 在您的参数名称后面使用省略号:
(NSNumber *) addValues:(int) count, ...;
然后,您需要使用va_list和va_start来遍历提供的参数:
- (NSNumber *) addValues:(int) count, ...
{
va_list args;
va_start(args, count);
NSNumber *value;
double retval;
for( int i = 0; i < count; i++ )
{
value = va_arg(args, NSNumber *);
retval += [value doubleValue];
}
va_end(args);
return [NSNumber numberWithDouble:retval];
}
示例来自:http://numbergrinder.com/node/35
请注意,这是一个内置的C功能,不是Objective-C的一部分;这里有一个关于va_arg用法的很好的解释:
http://publications.gbdirect.co.uk/c_book/chapter9/stdarg.html