Czy IBOutlet musi być własnością i syntetyzowany?

W większości przykładów widzę następującą konfigurację IBOutlets:



(Example A)

FooController.h:

@interface FooController : UIViewController {
    UILabel *fooLabel;
}

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

@end

FooController.m:

@implementation FooController

@synthesize fooLabel;

@end

Ale działa to również dobrze (uwaga: brak właściwości i brak syntezy):



(Example B)

FooController.h:

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

@end

FooController.m:

@implementation FooController

@end

Czy są jakieś wady definiowania IBOutlets jak w przykładzie B? Jak wycieki pamięci? Wydaje się działać dobrze i wolę nie ujawniać IBOutlets jako właściwości publicznych, ponieważ nie są one używane jako takie, są one używane tylko w implementacji kontrolera. Definiowanie go w trzech miejscach bez prawdziwej potrzeby nie wydaje mi się bardzo OSUSZONE (Nie powtarzaj się).

questionAnswers(4)

yourAnswerToTheQuestion