核心情节中的情节参考不足?

时间:2018-05-18 21:43:59

标签: 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 :(得分:0)

Core Plot图表包含对其数据源的弱引用。这是整个Apple框架中看到的数据源模式的标准部分,用于防止保留周期。数据源通常在控制器对象中实现,该控制器对象由系统自动保留。如果你想使用另一个对象作为数据源,你必须在某处保持对它的持久引用。