5

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

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

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

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

    // override implementation
    ...
}

但这不起作用。有人知道如何工作吗?谢谢。

4

1 回答 1

3

类似于printf/ vprintf,基础将声明:

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

子类将实现:

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

然后基础只会调用vsomeMethod:vaList:它的实现someMethod:vaList:

于 2012-03-05T06:15:52.640 回答