我有一条大线要画,颜色沿线变化。
我时不时地在代码的第 4 行得到 EXC_BAD_ACCESS。
我怀疑这与 *tempColor 的自动释放有关,但无法弄清楚如何让它有效地工作而不是崩溃。
有任何想法吗?这在此代码的 50 次运行中有 1 次崩溃。
CGContextBeginPath(ctx);
CGContextMoveToPoint(ctx, lastx, lasty);
CGContextAddLineToPoint(ctx, point.x, point.y);
UIColor *tempColor = [self colorForHex:[[heightLocal objectAtIndex:idx] doubleValue]];
CGContextSetStrokeColorWithColor(ctx,tempColor.CGColor);
CGContextStrokePath(ctx);
lastx = point.x;
lasty = point.y;
编辑:
在那个建议之后快速玩了一下,可能认为是因为 heightLocal 没有初始化?
我将其更改为此处的代码...
if(idx > [heightLocal count]){
heightVar = 0;
NSLog(@"Made it here");
}else {
heightVar = [[heightLocal objectAtIndex:idx] doubleValue];
}
UIColor *tempColor = [self colorForHex:heightVar];
它在第一行得到同样的错误。如果!
heightLocal 使用...进行初始化
NSArray *heightLocal = routeGrabInstance.pointHeights;