, он доступен только в пределах этого файла, что означает, что он фактически является закрытым; он не может быть вызван объектом любого другого класса.

я очень не хочу бить лошадь до смерти по этому вопросу (я читал различные статьи по этому поводу), но я просто хотел бы получить больше мнений по этому вопросу, прежде чем я создам свое «собственное соглашение», которое теперь будет использоваться при кодировании. в 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 иметь действительно отличное имя, чтобы не создавать проблемы для подклассов или методов перезаписи. Я должен идти по этому пути? Или для этих конкретных сценариев есть лучший способ сделать это?

Ответы на вопрос(3)

Ваш ответ на вопрос