Quiero usar una categoría para hacer que un método de la clase original esté disponible también como propiedad.Categorías de Objective-C: ¿Puedo agregar una propiedad para un método que no esté en mi categoría?
Clase A:
@interface ClassA
- (NSString*)foo;
@end
Clase A categoría
@interface ClassA (Properties)
- (void)someCategoryMethod;
@property (nonatomic, readonly) NSString *foo;
@end
Ahora cuando hago esto, parece que funciona (EDIT: Tal vez esto no funciona, no lo hace quejarse pero estoy viendo extrañeza), pero me da advertencias porque no estoy sintetizando la propiedad en la implementación de mi categoría. ¿Cómo le digo al compilador que todo está bien ya que la clase original me sintetiza la propiedad?
Las propiedades son (principalmente) solo azúcar para un método '-foo' y' -setFoo'. No puede agregar variables de instancia adicionales en categorías, pero puede definir esos métodos. La sintaxis @property es opcional, pero se sugiere (no estoy seguro de si funciona). –
Para cualquiera que intente agregar una propiedad con un respaldo ivar (también se define en la categoría), consulte esto: http://oleb.net/blog/2011/05/faking-ivars-in-objc-categories-with- associative-references/ – Senseful
posible duplicado de [Objective-C: Property in Category] (http://stackoverflow.com/questions/8733104/objective-c-property-in-category) – hfossli