如何覆盖Objective-C中的可变方法

时间:2012-03-05 06:09:00

标签: objective-c variadic variadic-functions

我正在尝试扩展一个具有可变方法的类,例如:

- (void)someMethod:(id)arguments, ... ;

并在子类中通过调用原始方法来覆盖它,如:

- (void)someMethod:(id)arguments, ... {
    [super someMethod:arguments, ...];

    // override implementation
    ...
}

但这不起作用。有谁知道如何工作?感谢。

1 个答案:

答案 0 :(得分:3)

类似于printf / vprintf,基数会声明:

- (void)someMethod:(id)arguments, ... ;

子类将实现:

- (void)vsomeMethod:(id)arguments vaList:(va_list)vaList;

然后,基地只会在vsomeMethod:vaList:的实施中调用someMethod:vaList: