Um IBOutlet precisa ser uma propriedade e sintetizado?

Na maioria dos exemplos, vejo a seguinte configuração dos IBOutlets:



(Example A)

FooController.h:

@interface FooController : UIViewController {
    UILabel *fooLabel;
}

@property (nonatomic, retain) IBOutlet UILabel *fooLabel;

@end

FooController.m:

@implementation FooController

@synthesize fooLabel;

@end

Mas isso também funciona bem (observe: sem propriedade e sem sintetizar):



(Example B)

FooController.h:

@interface FooController : UIViewController {
    IBOutlet UILabel *fooLabel;
}

@end

FooController.m:

@implementation FooController

@end

Existem desvantagens de definir IBOutlets como no Exemplo B? Como vazamentos de memória? Parece funcionar bem e eu prefiro não expor os IBOutlets como propriedades públicas, pois eles não são usados ​​como tal, eles são usados ​​apenas na implementação do controlador. Defini-lo em três lugares sem uma necessidade real não me parece muito seco (não se repita).

questionAnswers(4)

yourAnswerToTheQuestion