2010-10-07 2 views
1
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
     UITouch *touch=[touches anyObject]; 
     currentPoint=[touch locationInView:self.view]; 
     rootLayer = [CALayer layer]; 
     rootLayer.frame = self.view.bounds; 
     [self.view.layer addSublayer:rootLayer]; 
     starPath = CGPathCreateMutable(); 
     CGPathMoveToPoint(starPath, NULL, currentPoint.x, currentPoint.y + 15.0); 
     for(int i = 1; i < 5; ++i) 
     { 
     CGFloat x = 15.0 * sinf(i * 4.0 * M_PI/5.0); 
     CGFloat y = 15.0 * cosf(i * 4.0 * M_PI/5.0); 
     CGPathAddLineToPoint(starPath, NULL, currentPoint.x + x, currentPoint.y + y); 
     } 
     CGPathCloseSubpath(starPath); 
     shapeLayer = [CAShapeLayer layer]; 
     shapeLayer.path = starPath; 
     UIColor *fillColor = [UIColor colorWithWhite:0.9 alpha:1.0]; 
     shapeLayer.fillColor = fillColor.CGColor; 
     [rootLayer addSublayer:shapeLayer]; 
    } 


    - (void)dealloc { 
     [imageView release]; 
     CGPathRelease(starPath); 
     [super dealloc]; 
    } 

Когда я бегу с инструментом производительности просачивается он занимающий больше памятиПроблема с управлением памятью в моем коде

когда РМКО перемещение ....

что делать ....

Мне нужно нарисовать эту звезду на прикосновениях к фильмам на слое, чтобы позже я смог выполнить анимацию ....

ответ

0

Вы выпускаете путь в dealloc, но создаете его (потенциально) много раз внутри ваш touchesMoved:. Вы можете спокойно освободить этот ресурс в конце своего touchesMoved:, пожалуйста, подумайте об этом.

Кроме того, после того, как вы внесли это изменение, вы можете удалить выпуск с dealloc, так как вам больше не придется его выпускать. Ваш путь не существует вне вашего метода.

+0

спасибо за повтор .. я так и сделал ... но все же в моих инструментах все распределение увеличивается, когда я переехал .... его не контролировали ...... –

+0

@ Киран, почему вы заявили starpath как глобальная переменная? И ответ Джера правильный. Вам просто нужно освободить starpath внутри тронутых движений. – Sagar