Должен ли 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 как открытые свойства, так как они не используются как таковые, они используются только в реализации контроллера. Определение его в трех местах без реальной необходимости не кажется мне очень СУХИМЫМ (не повторяйте себя).

Ответы на вопрос(4)

Ваш ответ на вопрос