2011-06-17 | 阅读(2,218)
Objective-C 中有许多不定参数函数,像 NSLog(format, arg1, arg2),还有字符串或数组在构造时所用的 [NSString stringWithFormat: format, arg1, arg2, arg3],它们的方法原型分别是:
FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2);
+ (id)stringWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1,2);
应该去掉后面的 NS_FORMAT_FUNCTION(1,2) 来看,否来会干扰到思维。我们现在的例子还不需要这么写,至于 NS_FORMAT_FUNCTION(1,2) 的功用为何,我有时间还得好生看下。OK, 看多了 Apple 的那些可变参函数,可能反而令你感到费解,还不如来试个实际的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
- (void)foo:(NSString *)format, ... { va_list args; va_start(args, format); NSString *str = [[NSString alloc] initWithFormat:format arguments:args]; va_end(args); printf([str UTF8String]); [str release]; } - (IBAction) doo: (UIButton*) sender { //须留意不定参函数的调用格式,逗号分隔的序列,应该它们整体是作为函数的一个参数传入 [self foo : @"My name %@, %@", @"Unmi", @"Yes"]; } |
阅读全文 >>