Что это за соглашение в объявлении метода?
Я видел, как кто-то объявлял метод в Objective C следующим образом:
- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...;
Может кто-нибудь сказать мне, что представляет здесь пунктирная запись в конце объявления метода?
1 ответ
Решение
...
представляет список аргументов переменной длины, аналогичный переменной функции в стандартном C. Это указывает, что сообщение может принимать переменное число аргументов.
В реализации сообщения переменные аргументы обрабатываются так же, как в стандартной функции C, за исключением того, что в Objective-C список аргументов обычно nil
прекращается. Тот же заголовочный файл stdarg.h
используется, и то же самое va_list
тип и связанные макросы для управления списком.
Посмотрите этот документ OS X Developer для примера; и некоторые стандартные примеры C здесь.