在大多数示例中,我看到以下的IBOutlets设置:
(Example A)
FooController.h:
@interface FooController : UIViewController {
UILabel *fooLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *fooLabel;
@end
FooController.m:
@implementation FooController
@synthesize fooLabel;
@end
但是这个也可以正常工作(注意:没有属性和synthesize):
(Example B)
FooController.h:
@interface FooController : UIViewController {
IBOutlet UILabel *fooLabel;
}
@end
FooController.m:
@implementation FooController
@end
像示例B中定义IBOutlets有什么缺点吗?比如内存泄漏?看起来运行良好,我更喜欢不将IBOutlets作为公共属性公开,因为它们并没有被用作这样,它们只在控制器实现中使用。在没有真正需要的情况下在三个位置定义它并不让我感到很DRY(不要重复自己)。