Implementación del método privado
-
10-12-2019 - |
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
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.