Это было бы полезно для последовательного именования методов, например, давайте взглянем на некоторые имена методов из протокола UITableViewDataSource
:
numberOfSectionsInTableView:
tableView:heightForHeaderInSection:
tableView:viewForHeaderInSection:
tableView:heightForFooterInSection:
tableView:viewForFooterInSection:
tableView:numberOfRowsInSection:
tableView:cellForRowAtIndexPath:
sectionIndexTitlesForTableView:
Обратите внимание, как первые и последние нечетны - они оба по-прежнему принимают UITableView*
в качестве первого параметра, но, поскольку это единственный параметр, согласованность соглашения об именах нарушается. Было бы намного лучше, если бы их можно было назвать так:
tableView:numberOfSections
tableView:sectionIndexTitles
Можно ли определить методы, подобные этим, или подобные? Я пробовал это:
- (NSUInteger)specialView:(SpecialView*)specialView numberOfThingies;
- (NSUInteger)specialView:(SpecialView*)specialView numberOfThingies:(void)unused;
Первый вариант идеален, но вызывает ошибку в заголовочном файле. Второй не идеален (было бы лучше без двоеточия в конце), но он принят в заголовке, хотя я не могу понять, как это назвать. Я пробовал варианты:
[anObject specialView:aSpecialView numberOfThingies];
[anObject specialView:aSpecialView numberOfThingies:];
[anObject specialView:aSpecialView numberOfThingies:void];
[anObject specialView:aSpecialView numberOfThingies:(void)0];
Есть ли способ сделать то, что я хочу сделать?
Существуют ли еще какие-либо разумные соглашения об именах, которые поддерживают такие методы согласованными?