¿Es necesario que un IBOutlet sea una propiedad y se sintetice?
En la mayoría de los ejemplos, veo la siguiente configuración de IBOutlets:
(Example A)
FooController.h:
@interface FooController : UIViewController {
UILabel *fooLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *fooLabel;
@end
FooController.m:
@implementation FooController
@synthesize fooLabel;
@end
Pero esto también funciona bien (aviso: no hay propiedades y no se sintetiza):
(Example B)
FooController.h:
@interface FooController : UIViewController {
IBOutlet UILabel *fooLabel;
}
@end
FooController.m:
@implementation FooController
@end
¿Hay desventajas de definir IBOutlets como en el Ejemplo B? ¿Como fugas de memoria? Parece funcionar bien y prefiero no exponer los IBOutlets como propiedades públicas, ya que no se usan como tales, solo se usan en la implementación del controlador. Definirlo en tres lugares sin una necesidad real no me parece muy SECO (No se repita).