Должен ли IBOutlet быть собственностью и синтезироваться?
В большинстве примеров я вижу следующую настройку IBOutlets:
(Example A)
FooController.h:
@interface FooController : UIViewController {
UILabel *fooLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *fooLabel;
@end
FooController.m:
@implementation FooController
@synthesize fooLabel;
@end
Но это также хорошо работает (обратите внимание: нет свойства и нет синтеза):
(Example B)
FooController.h:
@interface FooController : UIViewController {
IBOutlet UILabel *fooLabel;
}
@end
FooController.m:
@implementation FooController
@end
Есть ли недостатки определения IBOutlets, как в примере B? Как утечки памяти? Кажется, работает нормально, и я предпочитаю не выставлять IBOutlets как открытые свойства, так как они не используются как таковые, они используются только в реализации контроллера. Определение его в трех местах без реальной необходимости не кажется мне очень СУХИМЫМ (не повторяйте себя).