覆盖objective-c中的可变方法

Tho*_*mas 10 objective-c variadic-functions subclassing

在objective-c中进行子类化时,如何在可变方法的情况下将调用转发给超类.我该怎么替换??? 下面发送我得到的所有对象?

- (void) appendObjects:(id) firstObject, ...
{
   [super appendObjects: ???];
}
Run Code Online (Sandbox Code Playgroud)

ken*_*ytm 7

你不能.要安全地传递所有可变参数,您需要一个接受a的方法va_list.

在超级,

-(void)appendObjectsWithArguments:(va_list)vl {
  ...
}

-(void)appendObject:(id)firstObject, ...
  va_list vl;
  va_start(vl, firstObject);
  [self appendObjectsWithArguments:vl];
  va_end(vl);
}
Run Code Online (Sandbox Code Playgroud)

[super appendObjectsWithArguments:vl]在覆盖子类中的方法时使用.