报错信息是这样子的:
`Assertion failed: (CGFloatIsValid(x) && CGFloatIsValid(y)), function
void CGPathMoveToPoint(CGMutablePathRef, const
CGAffineTransform *, CGFloat, CGFloat), file Paths/CGPath.cc, line
254.`
部分代码如下:
CGFloat radius;
NSInteger num = _itemsNumber;
CGFloat x = half(self.frame.size.width);
CGFloat y = half(self.frame.size.height);
ctx = UIGraphicsGetCurrentContext();
[colorRGB(255, 200, 0) setFill];
CGContextSetAlpha(ctx, 0.6);
CGContextSetLineWidth(ctx, 3);
radius = maxRadius / ((NSNumber *)_arrayMaxCounts.lastObject).integerValue * ( (NSNumber *)_arrayRanks.lastObject).integerValue;
CGContextMoveToPoint(ctx, x + radius, y);
调用CGContextMoveToPoint(ctx, x + radius, y)
这个方法的时候, radius
是不能为空的,逆推找到数组_arrayRanks
和_arrayMaxCounts
初始化的时候都是空的,iOS 8
的绘制规则可能不太一样(没有钻研精神的程序员不叫程序员,叫码农),所以在这之前应该先判断数组不能为空,为空return掉,等服务端数据返回,外界将数组传入,这样就不会出什么差错了.