У меня есть большая линия, чтобы нарисовать, что цвет меняется вдоль линии.
Время от времени я получаю EXC_BAD_ACCESS в 4-й строке кода там.
Я подозреваю, что это как-то связано с автоматическим выпуском * tempColor, но не может понять, как заставить его работать эффективно и не вылетать.
Есть идеи? Это происходит, скажем, 1 из 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;
EDIT:
Только что быстро поиграл после этого предложения и, возможно, подумал, что это из-за того, что 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;