Внедряване на частен метод

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

Това скорошна промяна ли е или съм структурирал своя ред на метода от някакво архаично ограничение „C“?

Начинът, по който Xcode се държи сега, изглежда, че няма нужда да се създава каквато и да е категория за частни методи. Лично аз намирам това за доста хубаво.

РЕДАКТИРАНЕ: Използвам Xcode 4.3.1


person Aaron Hayman    schedule 10.03.2012    source източник
comment
дубликат на Private Method Declaration Objective-C   -  person jscs    schedule 10.03.2012


Отговори (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

(Знам, че няма нужда от „връщане“, но съм малко старомоден в това отношение.)

И двете версии обаче ще го изградят правилно и ще се изпълнява, освен ако не сте направили печатна грешка в името на метода.

person Hermann Klecker    schedule 10.03.2012
comment
Благодаря за потвърждението. Бях почти сигурен, че го нямаше в по-ранните версии на Xcode, но е хубаво да имам потвърждение. Освен това е много хубаво допълнение. - person Aaron Hayman; 10.03.2012