Как переопределить метод variadic в Objective-C - PullRequest
5 голосов
/ 05 марта 2012

Я пытаюсь расширить класс, имеющий метод с переменным значением, например:

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

, и в подклассе переопределить его, вызвав оригинальный метод, например:

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

    // override implementation
    ...
}

но это не работаетКто-нибудь знает, как это работает?Спасибо.

1 Ответ

3 голосов
/ 05 марта 2012

аналогично printf / vprintf, база объявит:

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

подкласс будет реализовывать:

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

тогда база просто вызовет vsomeMethod:vaList: при реализации someMethod:vaList:.

...