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ę).