修复 github 项目 SwiftChart 中的错误

Fixing bugs in a github project SwiftChart

我正在尝试查找此 github 项目中的错误。

https://github.com/gpbl/SwiftChart

所有者似乎没有回答任何问题或回复。

我无法将此示例发送到 运行:

// Create a new series specifying x and y values
let data = [(x: 0, y: 0), (x: 0.5, y: 3.1), (x: 1.2, y: 2), (x: 2.1, y: -4.2), (x: 2.6, y: 1.1)]
let series = new ChartSeries(data)
chart.addSerie(series)

Xcode 给出关于数据的这个错误

ViewController.swift:41:31: '(Double, Double)' is not identical to 'Float'

主文件Chart.swift中有这段代码

var labels: [Float]
if xLabels == nil {
  // Use labels from the first series
  labels = series[0].data.map( { (point: ChartPoint) -> Float in
    return point.x } )
}
else {
  labels = xLabels!
}

我不太确定如何处理地图。

领域有错别字。应该是

let data = [(x: 0, y: 0), (x: 0.5, y: 3.1), (x: 1.2, y: 2), (x: 2.1, y: -4.2), (x: 2.6, y: 1.1)]
let series = ChartSeries(data)
chart.addSeries(series)

也就是说,Swift 默认情况下将 0.5 推断为 Double,他的默认 init 正在查找 x 和 y 为 Float 类型。

我分叉了存储库,并添加了一个将双精度数转换为浮点数的初始化程序。如果 double 太大,这显然会导致问题,但对于较小的数字,这可能不会成为问题。我还将有问题的示例添加到实际项目中。我的叉子是 here.

如果所有者想要接受更改,我将发送拉取请求。否则,如果我有时间,我可能会将其重构为全部为 Double 并摆脱额外的 init。

我在 ChartSeries.swift 中添加了以下初始化,这可以防止您在将 Double 值元组数组转换为 Floats 时总是必须定义数组。

init(data: Array<(x: Double, y: Double)>) {
    self.data = data.map ({ (Float([=11=].x), Float([=11=].y))})
}