Слабые ссылки на участки в основном сюжете? - PullRequest
0 голосов
/ 19 мая 2018

У меня есть ситуация, когда кажется, что core-plot отбрасывает объекты CPTPlotDataSource, если нет другой ссылки на объект.Симптом состоит в том, что если добавить шесть «трассировок» к графику, я увижу только последнюю добавленную трассировку, если только нет других ссылок на трассировки в других местах (объекты, реализующие протокол CPTPlotDataSource).Если есть еще одна внешняя ссылка на каждый объект FreqResponseDataSource, график работает отлично.Вот код, который добавляет след:

func addTrace(dataSource: FreqResponseDataSource,
              lineColor: CPTColor = CPTColor.black(),
              title: String? = nil) {
    let plot = CPTScatterPlot(frame: CGRect.zero)
    plot.dataSource = dataSource
    plot.title = title
    let ls1 = CPTMutableLineStyle(style: plot.dataLineStyle)
    ls1.lineColor = lineColor
    ls1.lineWidth = 2.0
    plot.dataLineStyle = ls1
    graph.add(plot, to: graph.defaultPlotSpace)
    graph.reloadData()
}

1 Ответ

0 голосов
/ 19 мая 2018

Графики Core Plot содержат слабые ссылки на свои источники данных.Это стандартная часть шаблона источника данных, встречающегося во всех структурах Apple, и делается для предотвращения сохранения циклов.Источник данных часто реализуется в объекте контроллера, который автоматически сохраняется системой.Если вы хотите использовать другой объект в качестве источника данных, вам нужно где-то постоянно сохранять ссылку на него.

...