我画了一条大线,颜色沿着线条变化。
我一次又一次在代码的第4行得到EXC_BAD_ACCESS。
我怀疑它与* tempColor的自动释放有关,但无法解决如何使其有效工作而不是崩溃。
有什么想法吗?这次代码在50次运行中崩溃了。
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];
并在第一行得到相同的错误。 if!
使用...
初始化heightLocalNSArray *heightLocal = routeGrabInstance.pointHeights;
答案 0 :(得分:1)
我会说你得到的数组:
routeGrabInstance.pointHeights;
没有得到妥善保留。如果它像许多类一样,它可以作为自动释放返回。
尝试:
[heightLocal retain]
之后
NSArray *heightLocal = routeGrabInstance.pointHeights;