抱歉,问题标题有点模糊,但我发现自己很难把它弄清楚。
这里的问题是我有两个不同的数据源,我可能正在初始化和加载数据。根据我需要哪个数据源的数据更改。
我遇到的问题是当它可能来自两个不同的类时如何定义该数据源的变量。
如果我在我的界面中定义它们:
BColumnChartDataSource * chartDatasource = [[BColumnChartDataSource alloc] initWithExercise:_exercise];
BDoubleColumnChartDataSource * chartDatasource = [[BDoubleColumnChartDataSource alloc] initWithExercise:_exercise];
那么它显然不喜欢他们被称为同一个东西。
如果我尝试将它们放在 if 语句中,那么它们在逻辑语句之外不可用
if (_exercise.unitTypeLinks.count < 2) {
BColumnChartDataSource * chartDatasource = [[BColumnChartDataSource alloc] initWithExercise:_exercise];
}
else {
BDoubleColumnChartDataSource * chartDatasource = [[BDoubleColumnChartDataSource alloc] initWithExercise:_exercise];
}
最终,我想将它们放入这样的语句中,以便我可以将 if 语句放入其中的每一个中,但这是一种非常冗长的方式,如果我添加更多数据源可能需要更多时间。
// Get the exercise event list for our clicked exercise
_exerciseEventList = [chartDatasource getExerciseEventList];
我想我一定在这里遗漏了一些明显的东西,所以感谢您提供的任何帮助