Objective-C,或者具体来说是 Cocoa,支持可变参数,例如 class the method on NSString +(NSString *)stringWithFormat:(NSString *)string, ....
。
现在,我想知道的是是否可以遵循可变参数必须在方法的末尾,或者该方法可以在之后继续吗?
例如,假设我有可变参数方法(使用适当的宏),
- (void)setObjects:(id)obj, ... NS_REQUIRES_NIL_TERMINATION;
如果我想在特定索引处使用它,我可以做这样的事情吗?
- (void)setObjects:(id)obj, ... NS_REQUIRES_NIL_TERMINATION atIndex:(int)index;
我一直在尝试,这个具体的例子不起作用,给我一条错误消息,说“预期的';' 在方法原型之后”。当然,我可以将参数打乱,以确保可变参数在最后,就像这样,
- (void)atIndex:(int)index setObjects:(id)obj, ... NS_REQUIRES_NIL_TERMINATION;
这当然有效,但对我来说,在 Cocoa 命名约定中感觉相当陌生——这对我来说是个问题。
谢谢,