¿Cuál es la diferencia entre colocar variables de instancia pseudoprivadas en una extensión de clase dentro del archivo .m o ponerlas en los paréntesis @implementation recién presentados, como se muestra a continuación?¿Cuál es la diferencia entre agregar ivars pseudoprivadas en una extensión de clase o en el bloque @implementation?
¿Hay consecuencias, pros y contras en una u otra forma? ¿Internal2 se trata de forma diferente a internal3 de una manera que debe preocuparse por un programador? (Por supuesto que hay una diferencia que McKay diría, pero la pregunta es si te importa en la práctica o no).
// MyClass.m
@interface MyClass() {
id internal2;
}
@end
@implementation MyClass {
id internal3;
}
- (void)internalMethod {
NSLog(@"%@ %@", internal2, internal3);
}
@end
fuente: http://www.mcubedsw.com/blog/index.php/site/comments/new_objective-c_features/
Las clases pueden tener más de un bloque de implementación. Es la base de las extensiones de clase. –
Sí, por supuesto. Pero sin incluir categorías, una sola clase solo puede tener una @implementación. – UIAdam
@EllNeal: Categoría '@ implementation's! = Clase' @ implementation's –