Вопрос

Этот вопрос в основном из любопытства, чем что-либо еще.Но в настоящее время я размещаю все свои частные методы первыми в своем @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

(Я знаю, что в «возврате» нет необходимости, но я немного старомоден в этом отношении.)

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top