任何人都可以告诉我为什么这种常常被称为泄漏记忆的方法?
如果我看看iOS分配工具/ VM工具没有泄漏....但是如果我看一下我在stackoverflow找到的report_memory函数,我可以看到常驻大小正在增长每2秒1 MB。如果我不调用此方法,则驻留大小每40秒仅增加1 MB。有时候我会收到一个“已收到内存警告”的日志,但我无法弄清楚为什么会这样。居民大小,脏大小,分配......一切看起来都不错。
path2是一个类变量。
-(void) drawPath:(float) winkel path:(UIBezierPath *) mpath toPoint:(CGPoint) pt{
path2 = [UIBezierPath bezierPathWithCGPath:mpath.CGPath];
box = CGPathGetPathBoundingBox(path2.CGPath);
CGAffineTransform translate = CGAffineTransformMakeTranslation(-1 * (box.origin.x + (box.size.width / 2)), -1 * (box.origin.y + (box.size.height / 2)));
[path2 applyTransform:translate];
CGAffineTransform rotate = CGAffineTransformMakeRotation(DEGREES_TO_RADIANS(winkel));
[path2 applyTransform:rotate];
translate = CGAffineTransformMakeTranslation((box.origin.x + (box.size.width / 2)), (box.origin.y + (box.size.height / 2)));
[path2 applyTransform:translate];
translate = CGAffineTransformMakeTranslation(pt.x-(box.size.width / 2), pt.y-(box.size.height / 2));
[path2 applyTransform:translate];
[path2 fill];
}
我认为问题是CGAffineTransformMakeTranslation / applyTransform ...但是我无法弄清楚为什么这种方法会泄漏。
答案 0 :(得分:1)
必须使用CFRelease显式释放由名称中包含 Make 的函数返回的每个Core Foundation对象。