0

非常に頻繁に呼び出されるこのメソッドがメモリをリークしている理由を誰か教えてもらえますか?

iOS Allocation Tool / VM Tool を見てみると、リークはありません....しかし、ここで見つけた report_memory 関数を stackoverflow で見ると、常駐サイズが 1 MB 増加していることがわかります。 2秒あたり。このメソッドを呼び出さない場合、常駐サイズは 40 秒あたり 1 MB しか増加しません。ある時点で「Did receive memory warning」ログを受け取りますが、なぜこれが起こっているのかわかりません。Resident Size、Dirty Size、Allocations ... すべて問題ないようです。

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 だと思います...しかし、このメソッドがリークしている理由がわかりません。

4

1 に答える 1