我在我的应用程序中使用以下代码:
@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?