私は私のアプリで以下のコードを使用しています:
@interface OMNController : NSObject
{
IBOutlet NSSearchField *filterFieldMonitor;
OMNMonitorTableView *monitorTableView;
}
@implementation OMNController
- (id) init
{
monitorTableView = [[OMNMonitorTableView alloc] init];
NSString *l_filter = [filterFieldMonitor stringValue];
[monitorTableView setFilter:l_filter];
}
....
@end
このコード1の例では、@ property @synthesizeを使用する必要はなく、正常に機能します。
ベストプラクティスとして、accessor / ivarを使用する必要があります:
@interface OMNController : NSObject
{
IBOutlet NSSearchField *_filterFieldMonitor;
OMNMonitorTableView *_monitorTableView;
}
@property (readwrite, retain) OMNMonitorTableView *monitorTableView;
@property (assign) IBOutlet NSSearchField *filterFieldMonitor;;
@implementation OMNController
@synthesize monitorTableView = _monitorTableView;
@synthesize filterFieldMonitor = _filterFieldMonitor;
- (id) init
{
self.monitorTableView = [[OMNMonitorTableView alloc] init];
NSString *l_filter = [self.filterFieldMonitor stringValue];
[self.monitorTableView setFilter:l_filter];
}
....
@end
-
@interface OMNController : NSObject
{
IBOutlet NSSearchField *filterFieldMonitor;
OMNMonitorTableView *monitorTableView;
}
@property (readwrite, retain) OMNMonitorTableView *monitorTableView;
@property (assign) IBOutlet NSSearchField *filterFieldMonitor;;
@implementation OMNController
@synthesize monitorTableView;
@synthesize filterFieldMonitor;
- (id) init
{
monitorTableView = [[OMNMonitorTableView alloc] init];
NSString *l_filter = [filterFieldMonitor stringValue];
[monitorTableView setFilter:l_filter];
}
....
@end
コード1またはコード2またはコード3の最良の方法は何ですか?