Реализация частного метода - PullRequest
2 голосов
/ 10 марта 2012

Этот вопрос в основном любопытство, чем все остальное.Но в настоящее время я размещаю все свои личные методы сначала в моем @implementation, чтобы избежать создания отдельной категории в моем файле .m для этих методов.Пока приватный метод был реализован до того, как его вызвал другой метод, все было хорошо.Я отчетливо помню, как Xcode предупреждает меня, если я пытался вызвать необъявленный метод до его реализации ... по крайней мере, я думаю, что могу.Теперь я начинаю сомневаться в своем здравомыслии, потому что теперь Xcode совершенно счастлив разрешить мне вызывать любой необъявленный метод, если его реализация находится где-то в пределах @implementation, даже если вызов идет до реализации.

Это недавнее изменение, или я структурировал свой порядок методов из-за какого-то архаичного ограничения 'C'?

То, как Xcode ведет себя сейчас, кажется, нет необходимости создавать какие-либо категории для частных методов.Лично я нахожу это довольно хорошим.

РЕДАКТИРОВАТЬ: я использую Xcode 4.3.1

1 Ответ

1 голос
/ 10 марта 2012

Видимо, вы правы. 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

(Я знаю, что возвращение не нужно, но я немного староват в этом отношении).

Однако обе версии будут правильно его строить, и он будет работать, если вы не произвели опечатку в имени метода.

...