Pregunta

Esta pregunta es más que nada curiosidad.Pero actualmente coloco todos mis métodos privados primero en mi @implementation para poder evitar crear una categoría separada en mi archivo .m para esos métodos.Siempre que el método privado se implementara antes de que lo llamara cualquier otro método, todo estaría bien.Puedo recordar claramente que Xcode me advirtió si intentaba llamar a un método no declarado antes de su implementación... al menos, creo que puedo.Ahora estoy empezando a dudar un poco de mi cordura porque Xcode ahora parece perfectamente feliz de permitirme llamar a cualquier método no declarado siempre que su implementación esté ubicada en cualquier lugar dentro del @implementation, incluso si la llamada se produce antes de la implementación.

¿Es este un cambio reciente o he estado estructurando el orden de mi método a partir de alguna limitación arcaica de 'C'?

Por la forma en que Xcode se comporta ahora, parece que no hay necesidad de crear ningún tipo de categoría para métodos privados.Personalmente, esto me parece bastante agradable.

EDITAR:Estoy usando Xcode 4.3.1

¿Fue útil?

Solución

Al parecer tienes razón.xcode 4.2.1 emite una advertencia y 4.3.1 no.

@implementation MyClass


- (void) callMyPrivateMethod {
    [self myPrivateMethod];   //<--- xcode 4.2.1 issues a warning here. 
    return;
}

- (void) myPrivateMethod {
    return; 
}

@end

(Sé que no hay necesidad de "devolución", pero estoy un poco anticuado con este respecto).

Sin embargo, ambas versiones lo compilarán correctamente y se ejecutará a menos que haya cometido un error tipográfico en el nombre del método.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top