Закрытый метод - это метод, который используется как деталь реализации, а не как [открытый] интерфейс. В других языках, где открытые и закрытые методы более эффективны, закрытые методы обычно нельзя вызывать из чего-либо, кроме класса, в котором они содержатся. Целью которого является скрыть детали реализации или предотвратить внешнюю зависимость от деталей реализации. Например, NSArray
, вероятно, имеет ряд частных методов, которые занимаются распределением памяти и оптимизированным хранилищем для эффективного доступа.
Objective-C не имеет по-настоящему частных методов; Вы можете свободно отправлять любое сообщение на любой объект, и оно может отвечать на него или нет. Во время выполнения вы также можете точно проверить, на какие сообщения класс (и его экземпляры) будут отвечать через серию вызовов API времени выполнения Objective C [которые публично задокументированы].
Некоторые люди пытаются использовать частные методы, чтобы получить поведение программы, которое невозможно с публично документированным интерфейсом; возможно, в качестве оптимизации, возможно, для того, чтобы API никогда не предназначался. Это легко возможно из-за динамической природы Objective-C и отсутствия истинных частных методов.
В качестве примечания; Apple обычно использует нижнее подчеркивание в именах методов, чтобы обозначить его как частное. Apple также заявляет, что имена методов, начинающиеся с подчеркивания, зарезервированы только для Apple.