Deklaruj właściwości w interfejsie .h lub w rozszerzeniu w pliku .m?
Czy w Objective-C najlepiej jest:
Zadeklaruj obiekty, takie jak przyciski w .h, a następnie syntezuj w .m
.h
@interface SomeViewController : UIViewController
@property (strong, nonatomic) UIButton *someButton;
@end
.m
@implementation SomeViewController
@synthesize someButton = _someButton;
@end
lub zadeklaruj je jako ivars w m
@interface SomeViewController ()
@property (strong, nonatomic) UIButton *someButton;
@end
Zauważam, że w wielu kodach Apple, a konkretnie w ich przykładowym kodzie Breadcrumbs, wiele ich właściwości jest deklarowanych w interfejsie. Czy jest różnica między nimi? Zauważyłem też, że kiedy właściwości są deklarowane w@interface
, są automatycznie syntetyzowane z prefiksem podkreślenia, dzięki czemusomeButton = _someButton
synteza bezużyteczna.