在objective-c中进行子类化时,在可变参数方法的情况下,如何将调用转发到超类。我应该用什么替换??? 下面发送我得到的所有对象?
- (void) appendObjects:(id) firstObject, ...
{
[super appendObjects: ???];
}
在objective-c中进行子类化时,在可变参数方法的情况下,如何将调用转发到超类。我应该用什么替换??? 下面发送我得到的所有对象?
- (void) appendObjects:(id) firstObject, ...
{
[super appendObjects: ???];
}
你不能。要安全地传递所有可变参数,您需要一个方法来接受va_list
.
在超级,
-(void)appendObjectsWithArguments:(va_list)vl {
...
}
-(void)appendObject:(id)firstObject, ...
va_list vl;
va_start(vl, firstObject);
[self appendObjectsWithArguments:vl];
va_end(vl);
}
并[super appendObjectsWithArguments:vl]
在覆盖子类中的方法时使用。
试试这个:
- (void) appendObjects:(id) firstObject, ...
{
va_list args = &firstObject;
[super appendObjects: args];
}
如果这不起作用,请阅读关于 varargs 的手册页。