В Objective-C 2.0 можно ли создать метод, в котором аргумент является необязательным? То есть вы можете вызвать вызов метода следующим образом:
[aFraction print];
а также:
[aFraction print: someParameter];
в той же программе.
Apple Objective-C 2.0 Язык программирования. Контексты руководства Obj-C с Python и, кажется, говорят, что это запрещено. Я все еще участвую, и я хочу быть уверенным. Если это возможно, то что такое синтаксис, потому что мой второй пример кода не работает.
Update: Хорошо, я просто сделал два метода, оба назвали "печать".
заголовок
-(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];
...
Я не могу поверить, что это сработало. Есть ли причина, по которой я не должен этого делать?