【发布时间】:2015-04-11 02:46:00
【问题描述】:
我正在尝试使用继承样式重新构建我的项目代码,如何从父类继承属性并覆盖 setter 和 getter 的最佳做法是什么?
我给出demo代码,demo中ChartModel是ChartViewController中的基类,LineChartModel是LineChartViewController中ChartModel的子类。
我想在子视图控制器中覆盖LineChartModel *dataModel 的setter 和getter。请包括任何@synthesize 和受保护的实例变量,或者如果它是由编译器自动生成的,请标记。提前致谢。
// ChartModel.h
@interface ChartModel : NSObject
-(BOOL)hasData;
@end
// LineChartModel.h
@interface LineChartModel : chartModel
-(void)getLineColor;
@property (nonatomic, strong) NSArray* dataArray;
@end
// ChartViewController.h
@interface ChartViewController: UIViewController
@property (nonatomic, strong) ChartModel *dataModel;
-(void)updateUI;
@end
// ChartViewController.m
@implementation ChartViewController
-(void)updateUI {
if ([self.dataModel hasData]) {
[self.view setHidden:NO];
} else {
self.view.hidden = YES;
}
// setter and getter here
@end
// LineChartViewController.h
@interface LineChartViewController : ChartViewController
// pay attension here, same name but a sub class of chartModel
@property (nonatomic, strong) LineChartModel *dataModel;
@end
// LineChartViewController.m
@implementation LineChartViewController
//override dataModel setter here
//override dataModel getter here
@end
【问题讨论】:
标签: ios objective-c