En Objective-C, hay un tipo de camino hacker para crear métodos privados, en el archivo .m:Creación de propiedades privadas en Objective-C
@interface FooClass (PrivateMethods)
- (void) doBar:(id)barAction withBaz:(id)bazAction;
@end
Esto funciona muy bien para los métodos. Traté de hacer lo mismo con una propiedad:
@interface BarClass (PrivateMethods)
@property (nonatomic, strong) BazObject *myBaz;
@end
@implementation BarClass
@synthesize myBaz = _myBaz;
[...]
@end
Esto provocó una advertencia de compilación: Propiedad declarado en la categoría '' PrivateMethods no pueden ser implementadas en implementación de la clase. Traté de mover mi propiedad a una categoría:
@implementation BarClass (PrivateMethods)
@synthesize myBaz = _myBaz;
@end
continuación: @synthesize is not allowed in a category's implementation.
La respuesta obvia es "dejar de tratar, sólo tiene que utilizar Ivars", pero me han dicho por la gente en Apple que' ve (personalmente) movido a usar propiedades por completo. La seguridad que traen (como la seguridad en un arma, más difícil de tirarse en el pie) me hace feliz por dentro, así que ¿hay alguna forma de hacer esto sin recurrir a ivars desnudos?