У меня есть протокол 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)
}