В Objective-C 2.0 возможно ли создать метод, в котором аргумент является необязательным? То есть вы можете вызвать метод следующим образом:
[aFraction print];
а также это:
[aFraction print: someParameter];
в той же программе.
Apple Язык программирования Objective-C 2.0 Руководство противопоставляет Obj-C Python и, кажется, говорит, что это запрещено. Я все еще учусь и хочу быть уверенным. Если это возможно , то каков синтаксис, потому что мой второй пример кода не работает.
Обновление:
Хорошо, я только что сделал два метода, оба с именем "print".
заголовок
-(void) print;
-(void) print: (BOOL) someSetting;
реализация
-(void) print {
[self print:0];
}
-(void) print: (BOOL) someSetting {
BOOL sv;
sv = someSetting;
if ( sv ) {
NSLog(@"cool stuff turned on");
}
else {
NSLog(@"cool stuff turned off");
}
}
соответствующие строки программы
...
printParamFlag = TRUE;
// no parameter
[aCodeHolder print];
// single parameter
[aCodeHolder print:printParamFlag];
...
Не могу поверить, что это сработало. Есть ли причина, по которой я не должен этого делать?