Реализация частного метода
-
10-12-2019 - |
Вопрос
Этот вопрос в основном из любопытства, чем что-либо еще.Но в настоящее время я размещаю все свои частные методы первыми в своем @implementation
чтобы я мог избежать создания отдельной категории в моем файле .m для этих методов.Пока приватный метод был реализован до того, как его вызвал какой-либо другой метод, все было хорошо.Я отчетливо помню, как Xcode предупреждал меня, если я пытался вызвать необъявленный метод до его реализации… по крайней мере, я думаю, что могу.Теперь я начинаю немного сомневаться в своем здравомыслии, потому что теперь Xcode, кажется, совершенно счастлив позволить мне вызывать любой необъявленный метод, если его реализация находится где-нибудь внутри @implementation
, даже если вызов происходит до реализации.
Это недавнее изменение или я структурировал свой порядок методов исходя из какого-то архаичного ограничения «C»?
Судя по тому, как сейчас ведет себя Xcode, кажется, нет необходимости создавать какую-либо категорию для частных методов.Лично мне это очень приятно.
РЕДАКТИРОВАТЬ:Я использую Xcode 4.3.1
Решение
Судя по всему, вы правы.xcode 4.2.1 выдает предупреждение, а 4.3.1 — нет.
@implementation MyClass
- (void) callMyPrivateMethod {
[self myPrivateMethod]; //<--- xcode 4.2.1 issues a warning here.
return;
}
- (void) myPrivateMethod {
return;
}
@end
(Я знаю, что в «возврате» нет необходимости, но я немного старомоден в этом отношении.)
Однако обе версии создадут его правильно и запустят, если вы не допустили опечатку в имени метода.