Objective-C, или, в частности, Какао, поддерживает переменные аргументы, как, например, класс метод NSString +(NSString *)stringWithFormat:(NSString *)string, ....
.
Теперь я хотел бы знать, возможно ли следовать этой вариационнойаргумент должен быть в конце метода, или метод может продолжаться после этого?
В качестве примера, предположим, что у меня есть метод с вариацией (с соответствующим макросом),
- (void)setObjects:(id)obj, ... NS_REQUIRES_NIL_TERMINATION;
Если я хочу использовать его по определенному индексу, могу ли я сделать что-то вроде этого:
- (void)setObjects:(id)obj, ... NS_REQUIRES_NIL_TERMINATION atIndex:(int)index;
Я пытался, и этот конкретный пример не работает, давая мне сообщение об ошибке, говорящее «Ожидаемый»;после способа-прототипа ".Конечно, я мог бы перемешать аргументы, чтобы убедиться, что вариационный конец находится в конце, как это,
- (void)atIndex:(int)index setObjects:(id)obj, ... NS_REQUIRES_NIL_TERMINATION;
Это, конечно, работает, но для меня это кажется довольно чуждым среди соглашений о присвоении имен Какао -что для меня проблема.
Спасибо,