У меня есть круговая диаграмма, которая отображает добавленные в нее данные
Выглядит это таким образом:
class HomeViewController: UIViewController {
var pieChart = PieChartView() // Круговая диаграмма
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
pieChart.delegate = self
self.setChart()
}
// Вывод данных на диаграмму
func setChart() {
var entries: [ChartDataEntry] = [] // Массив записей в диаграмме
for entry in 0..<(self.cellArr.count) {
if self.cellArr.count > 0 {
let dataEntry = PieChartDataEntry(value: Double(self.cellArr[entry].amount), label: String(self.cellArr[entry].type))
entries.append(dataEntry) // Добавление записи
}
}
updateSorting(values: entries)
}
func updateSorting(values: [ChartDataEntry]){
let dataSet = PieChartDataSet(entries: values, label: "")
let data = PieChartData(dataSets: [dataSet])
dataSet.colors = ChartColorTemplates.colorful()
pieChart.data = data
pieChart.notifyDataSetChanged()
}
}
Проблема в переменной
entries
, которая расположена в функции
setChart
. Мне необходимо с ней работать за пределами функции, но если я ее вынесу в класс -
class HomeViewController: UIViewController {
var pieChart = PieChartView() // Круговая диаграмма
var entries: [ChartDataEntry] = [] // <------------ !!!
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
pieChart.delegate = self
self.setChart()
}
}
То диаграмма начнет выводить лишние значения
Наглядный пример:
На первом скриншоте
entries
находится в функции, на втором уже за ней