Что это за соглашение в объявлении метода?

Я видел, как кто-то объявлял метод в Objective C следующим образом:

- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...;

Может кто-нибудь сказать мне, что представляет здесь пунктирная запись в конце объявления метода?

1 ответ

Решение

... представляет список аргументов переменной длины, аналогичный переменной функции в стандартном C. Это указывает, что сообщение может принимать переменное число аргументов.

В реализации сообщения переменные аргументы обрабатываются так же, как в стандартной функции C, за исключением того, что в Objective-C список аргументов обычно nil прекращается. Тот же заголовочный файл stdarg.h используется, и то же самое va_list тип и связанные макросы для управления списком.

Посмотрите этот документ OS X Developer для примера; и некоторые стандартные примеры C здесь.

Другие вопросы по тегам