2013-07-02 4 views
0

Я получаю ошибку EXC_BAD_ACCESS во время рисования, заполнения, а затем поглаживания пути. Вот код:EXC_BAD_ACCESS Проблема при поглаживании пути

UIBezierPath *aPath = [UIBezierPath bezierPath]; 

[aPath moveToPoint:CGPointMake(0, 88)]; 
[aPath addLineToPoint:CGPointMake(interPoint, 0)]; 
[aPath addLineToPoint:CGPointMake(interPoint, 176)]; 
[aPath addLineToPoint:CGPointMake(0, 88)]; 

[aPath closePath]; 

[[UIColor blackColor] setStroke]; 
[[UIColor colorWithHue:0.1583 saturation:1 brightness:1 alpha:1.0] setFill]; 

aPath.lineWidth = 1; 

[aPath fill]; 
[aPath stroke]; 

ошибка, кажется, происходит, когда программа получает [aPath stroke]. Если я прокомментирую [aPath stroke], ошибка исчезнет. Я знаю, что ошибка EXC_BAD_ACCESS связана с управлением памятью, но я не могу понять, где проблема. Любая помощь будет большой.

+0

Что произойдет, если вы закомментируете 'aPath.lineWidth = 1;'? – AbleArcher

+0

Это не помогает, но спасибо за предложение. – user1558617

ответ

0

Чтобы выяснить, почему и где ошибка EXC_BAD_ACCESS будет следовать следующий шаг:

В Xcode Перейти к Продукт ->Схема ->Редактировать Схема экран выскочит. На этом выберите вкладку «Аргумент». Под этим перейдите в раздел «Переменная среда» и нажмите кнопку «Добавить», чтобы добавить атрибут с именем NSZombieEnable со значением «ДА».

Теперь запустите приложение. Он предоставит вам журнал подробных сведений об ошибке EXC_BAD_ACCESS.

Вы можете увеличить счетчик сохранения переменных до того, как он будет освобожден в памяти с помощью [variableName сохранить];

В вашем случае используется [aPath retain];, прежде чем aPath будет освобожден.