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

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

并在子类中通过调用原始方法来覆盖它,例如:
- (void)someMethod:(id)arguments, ... {
    [super someMethod:arguments, ...];

    // override implementation
    ...
}

但这是行不通的。有人知道如何工作吗?谢谢。

最佳答案

类似于printf/vprintf,该基声明:

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

该子类将实现:
- (void)vsomeMethod:(id)arguments vaList:(va_list)vaList;

那么该基地将只是在其vsomeMethod:vaList:的实现中调用someMethod:vaList:

关于objective-c - 如何在Objective-C中覆盖可变参数方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9562361/

10-13 06:16