Ios6 为什么这种客观C绘图方法会泄漏?

Ios6 为什么这种客观C绘图方法会泄漏?,ios6,memory-leaks,Ios6,Memory Leaks,有人能告诉我为什么这个经常被调用的方法会泄漏内存吗 如果我看一下iOS分配工具/VM工具,就不会有漏洞。。。。但是如果我看一下我在stackoverflow找到的一个report_内存函数,我可以看到驻留大小每2秒增长1 MB。如果我不调用此方法,驻留大小每40秒只会增加1MB。有时我会收到一个“确实收到了内存警告”日志,但我不明白为什么会发生这种情况。常驻大小、脏大小、分配。。。一切看起来都很好 path2是一个类变量 -(void) drawPath:(float) winkel path:

有人能告诉我为什么这个经常被调用的方法会泄漏内存吗

如果我看一下iOS分配工具/VM工具,就不会有漏洞。。。。但是如果我看一下我在stackoverflow找到的一个report_内存函数,我可以看到驻留大小每2秒增长1 MB。如果我不调用此方法,驻留大小每40秒只会增加1MB。有时我会收到一个“确实收到了内存警告”日志,但我不明白为什么会发生这种情况。常驻大小、脏大小、分配。。。一切看起来都很好

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];
}

我认为问题在于CGAffineTransformMakeTransform/applyTransform。。。但是我不知道为什么这个方法漏掉了。

由名称中的函数返回的每个核心基础对象必须使用cFrRely. 包括CGMakePoint?@Almo你没有仔细阅读我的答案,尽管它非常简洁。我确实仔细阅读了它。我认为CGMakePoint没有返回需要发布的内容,而您的回答是应该发布。@Almo没有,我的回答明确指定它只适用于对象。CGMakePoint返回一个结构。你没有仔细阅读我的答案。这种态度导致了表面知识(实际上,内存管理规则是关于名为alloc/copy/init/mutableCopy的Objective-C方法,以及名为copy或Create的CoreFoundation函数)。作为提示,使用Xcode中的Product->Analyze菜单项(CMD+SHIFT+B)对项目执行静态分析,以指示可能的内存泄漏。它不是100%准确的,所以请用一小撮盐。嘿,谢谢,但是在软件的这个特定部分没有发现错误:/