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

如何解决iOS下CocoaPod库'Charts'出现的CoreGraphics NaN错误?

Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem.

错误根因

Daniel Gindi维护的Charts库绘图时依赖CoreGraphics API,该API无法处理NaN(非数字)类型的数值,当传入的数据集、坐标轴配置中存在NaN值时,API会直接忽略所有绘图操作,最终表现为图表无任何数据绘制。

修复步骤
  • 校验所有数据源数值合法性
    构造ChartDataEntry之前对每个待传入的数值做非NaN、非无穷大校验,过滤或替换无效值,Swift参考代码:
    // 原始数值校验
    guard let targetY = rawYValue, targetY.isFinite else {
        // 可替换为0,或直接跳过该条数据
        continue
    }
    let entry = ChartDataEntry(x: xIndex, y: targetY)
    
    Objective-C参考判断逻辑:
    if (isnan(rawYValue) || isinf(rawYValue)) {
        // 处理无效值
        return;
    }
    
  • 校验坐标轴配置参数合法性
    如果你手动设置了坐标轴的axisMinimum、axisMaximum、granularity等属性,确认所有配置值均为合法数字,且不存在最小值大于最大值的逻辑错误。
  • 排查数据计算逻辑异常
    重点检查百分比、比值类数据的计算逻辑,避免出现分母为0的操作,这类操作会直接生成NaN值,需要提前对分母做非0判断。
  • 空数据场景适配
    如果业务允许空数据展示,当数据集全为无效值或为空时,主动调用chartView.notifyDataSetChanged()刷新图表状态,避免异常绘图逻辑触发。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 17:18:05