You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Charts从3.6.0到4.0.1后,ChartData无getDataSetByIndex成员如何解决?

解决Charts 4.0.1中ChartData无getDataSetByIndex方法的问题

Charts库从3.x升级到4.x后,API发生了重构,getDataSetByIndex(_:)方法被移除,需要改用直接访问ChartData的dataSets数组来获取对应索引的数据集。

修改你的代码如下:

if let data = altimetriaChartView.data, data.dataSetCount > 1, let lineChart = data.dataSets[1] as? LineChartDataSet {
    // 这里写你的业务逻辑代码
}

补充说明

因为你已经通过data.dataSetCount > 1确保了索引1对应的数据集存在,所以直接使用下标访问是安全的。如果想进一步增强安全性,也可以给数组添加一个安全下标扩展(可选):

extension Collection {
    subscript(safe index: Index) -> Element? {
        return indices.contains(index) ? self[index] : nil
    }
}

之后就可以这样写:

if let data = altimetriaChartView.data, let lineChart = data.dataSets[safe: 1] as? LineChartDataSet {
    // 业务逻辑代码
}

内容的提问来源于stack exchange,提问作者user20459409

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 05:50:20