Функция Objective C с параметрами по умолчанию? [дубликат]

38
задан Paulo Mattos 3 April 2019 в 17:41
поделиться

5 ответов

Определение нескольких методов:

Необязательные аргументы в Objective-C 2.0?

2
ответ дан 6 July 2019 в 20:21
поделиться

Вы можете написать функцию C со списком аргументов переменной длины. Вы можете использовать '...' в качестве типа данных для одного из объявленных параметров вашей функции, чтобы указать, где в списке параметров начинается список переменных аргументов. (Это позволяет вам иметь один или несколько обязательных аргументов перед началом списка.)

printf () - это пример функции, написанной с использованием этого средства (известного как varargs).

printf(const char *restrict format, ...);

Здесь требуется первый аргумент, за которым может следовать ноль или более дополнительных аргументов.

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

2
ответ дан 27 November 2019 в 03:09
поделиться

Для функции C - нет. Для метода класса Objective C - да, вы просто используете два метода, один из которых имеет короткий параметр, вызывая другой метод.

Или вы можете переименовать свои источники в .mm, и функции C волшебным образом станут C ++.

1
ответ дан 27 November 2019 в 03:09
поделиться

В ObjC нет параметров по умолчанию.

Однако вы можете создать 2 метода:

-(void)fooWithA:(int)a b:(int)b c:(int)c {
  ...
}
-(void)fooWithA:(int)a b:(int)b {
  [self fooWithA:a b:b c:0];
}

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

103
ответ дан 27 November 2019 в 03:09
поделиться

Нет, objective-c не поддерживает параметры по умолчанию. См. аналогичный вопрос

4
ответ дан 27 November 2019 в 03:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: