我有ChartData协议
protocol ChartData {
var dataHelper: DataHelper { get set }
var chartValues: [ChartValues] { get set }
}
并且类实现此协议
class SalesChartData: ChartData {
var dataHelper: DataHelper
var chartValues: [ChartValues] = []
init() {
dataHelper = DataHelper(data: ??? how to pass SalesChartData here ???)
}
}
和助手类:
class DataHelper {
var data: ChartData
init(data: ChartData) {
self.data = data
}
// use ChartData data.chartValues for example...
}
问题是如何将SalesChartData
传递给DataHelper
(通过'self'不起作用)?我需要在实现DataHelper
协议的每个类中访问ChartData
。我做错了吗?应该如何构造?我想过滤chartValues
中传递的数据DataHelper
等。欣赏任何想法
//编辑:
我做了类似的事情,但是这种结构并不优雅。如何改进?
init() {
dataHelper = DataHelper()
dataHelper.setData(data: self)
}
答案 0 :(得分:0)
尝试惰性:
class SalesChartData: ChartData {
lazy var dataHelper: DataHelper = DataHelper(data: self)
var chartValues: [ChartValues] = []
}