В Objective-C нет никаких частных методов. То, о чем вы думаете, это продолжение класса, интерфейс безымянной категории, который вы можете объявить в своем файле .m
для объявления методов. это будет в реализации класса, но не в общедоступном интерфейсе.
Никогда не было требования объявлять методы перед их использованием. Тем не менее, это всегда было хорошей идеей, и у компилятора есть флаг предупреждения, указывающий, когда используются методы, которые не были замечены. Причина в том, что это связано с соглашением о вызовах операционной системы для функций. Различные типы, такие как структуры, числа с плавающей запятой, целые числа и указатели, могут обрабатываться по-разному, когда они являются аргументами или возвращают значения из функций. Действительно, на разных компьютерах и в разных операционных системах они обрабатываются по-разному. Чтобы знать, как обрабатывать аргументы и возвращаемые значения для метода Objective-C, компилятору необходимо знать сигнатуру для этого метода: сколько аргументов каких типов он принимает и какой тип он возвращает.
Если он не видел объявления метода, то компилятору нужно будет сделать предположение. Если это предположение неверно, оно может в конечном итоге ввести неправильные значения в аргументы, или неправильно интерпретировать возвращаемое значение, или попытаться извлечь что-то из стека, которого не существует.