, он доступен только в пределах этого файла, что означает, что он фактически является закрытым; он не может быть вызван объектом любого другого класса.
я очень не хочу бить лошадь до смерти по этому вопросу (я читал различные статьи по этому поводу), но я просто хотел бы получить больше мнений по этому вопросу, прежде чем я создам свое «собственное соглашение», которое теперь будет использоваться при кодировании. в Objective-C.
Соглашение, которое я хочу выяснить, заключается в том, как (используя лучшие практики кодирования для кода производственного уровня) использовать частные методы в классе. Исходя из фона в C #, когда я пишу классы, обычно есть блок кода, который повторяется в нескольких открытых методах (таких как проверка ошибок или настройка соединения службы WCF). Я обычно создаю один блок этого кода и помещаю его в закрытый метод для доступа только этих открытых методов. Таким образом, если мне нужно внести изменение, мне нужно сделать это только в одном месте, в отличие от 10 разных мест в классе, но при этом никогда не дать пользователям возможность вызывать этот закрытый метод. Например:
public Class A
{
public void method1()
{
doErrorChecking()
// Do more stuff
}
public void method2()
{
doErrorChecking()
// Do more stuff
}
private doErrorChecking() { //Error Checking Code}
}
Я понимаю, что нет реального способа сделать этот последний метод частным в Objective-C, но я просто хочу убедиться, что когда я создаю все будущие классы в Objective-C для разработки под iOS, я следую наилучшей практике, так будущий рефакторинг кода по этому вопросу не понадобится (надеюсь). Я заметил, что люди говорят о категориях, другие просто не помещают метод в файл @interface, а другие используют методы расширения. Сейчас я просто помещаю реализацию метода в файл @implementation, но не в файл интерфейса. Я также заставляю приватный метод wannabe иметь действительно отличное имя, чтобы не создавать проблемы для подклассов или методов перезаписи. Я должен идти по этому пути? Или для этих конкретных сценариев есть лучший способ сделать это?