0000_0000_0000_0101_pnchart-swift出现crash解决

0000_0000_0000_0101 PNChart-swift出现crash解决

Optional Swift 博客正式开张,团队成员:PMST、星夜暮晨、Jim、ICE。地址:optionalswift.cn。国外访问比较慢,你懂的。

这几天一直忙于项目的事情,由于要使用绘制折线图功能实现流量随时间的一个走势,因此我最后选用了PNChart-swfit。有两种方式可以使用:

  • Pod 安装。

  • 下载swift文件,直接导入引用即可。

我选择了后者,操作简便,此外由于是swift写的,使用起来灰常顺手。

至于框架代码方面,可能是因为刚写的,所以还有很多BUG,我就遇到一个ORZ….

bug说明

这和y轴的值有关,假如你的y轴的值是[10,32,12,17],那么最大值Max=32,Min=10,也就是Y轴上座标从10开始到32结束,这个很好理解,因为你的数据区间就是在[Min,Max]之间,那么座标值范围也应该是这个。

现在讨论这个情况。y轴值是[10,10,10,10],那么最大值Max=10,Min=10,两者相等,似乎没有什么事情,按照我们的想法是y轴就一个点喽,难道这是bug?显然我说的不是这个。而是在框架中会有一步除法。
public func strokeChart()函数中找到如下代码。

innerGrade = (yValue! - yValueMin) / (yValueMax - yValueMin)//除数≠0才可以 假如=0 就是NAN了无效 程序崩掉

解决方法

现在找到属性public var chartData:NSArray = []yValueMin = yMin;
yValueMax = yMax;
这一行 在之后添加判断代码:

if yValueMax == yValueMin
{
   yValueMax += 1  //加上1 当然也可以自己修改喽
}

最后

打算自己在这个框架基础上写个绘图框架,目前有这打算

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章