gpt4 book ai didi

ios - 修复github项目SwiftChart中的错误

转载 作者:行者123 更新时间:2023-11-29 02:18:05 26 4
gpt4 key购买 nike

我正在尝试追踪这个 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!
}

我不太确定如何处理 map 。

最佳答案

领域有错别字。应该是

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 类型。

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

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

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

init(data: Array<(x: Double, y: Double)>) {
self.data = data.map ({ (Float($0.x), Float($0.y))})
}

关于ios - 修复github项目SwiftChart中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28512920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com