2011-06-21 16 views
-2

enter image description here 私は、私はこのリークメモリリーク使用して多次元配列

CGRectを削除する方法DNT iphoneで作業されていないため、これによるリークアプリに私は、これらのリークを削除する必要があり、その多次元可変配列でmemoery漏れを得ましたbounds = [自己境界];

UITouch*   touch = [[event touchesForView:self] anyObject]; 
if (firstTouch) { 
    firstTouch = NO; 
    previousLocation = [touch previousLocationInView:self]; 
    previousLocation.y = bounds.size.height - previousLocation.y; 
    NSMutableArray *temp=[[NSMutableArray alloc]init]; 
    [undo addObject:temp]; 
    /***** add 1st point *********/ 
    [[undo objectAtIndex:[undo count] -1] addObject:[NSValue valueWithCGPoint:previousLocation]]; 

    if(mcount==1) 
    { 
     [masking addObject:[[NSMutableArray alloc]init]]; 
     [[masking objectAtIndex:[masking count]-1] addObject:[NSValue valueWithCGPoint:previousLocation]]; 
    } 
} else { 

    location = [touch locationInView:self]; 
    location.y = bounds.size.height - location.y; 
    previousLocation = [touch previousLocationInView:self]; 
    previousLocation.y = bounds.size.height - previousLocation.y; 


    [[undo objectAtIndex:[undo count] -1]addObject:[NSValue valueWithCGPoint:previousLocation]]; 

    if(mcount==1) 
    { 
     [[masking objectAtIndex:[masking count]-1] addObject:[NSValue valueWithCGPoint:previousLocation]]; 
    } 
} 
+3

する

[undo objectAtIndex:[undo count] -1] 

を変更することができるということです。あなたの質問は何ですか?何を試しましたか?あなたはそれを全部絞り込んだのですか?この情報を追加するには、質問を編集してください。 –

答えて

2

このライン:

NSMutableArray *temp=[[NSMutableArray alloc]init]; 

が漏れているように見えます。終了するととなります

このライン:

[masking addObject:[[NSMutableArray alloc]init]]; 

も問題があります。直接ポインタがないので、私はautorelease(またはこのコードを書き換えていますが、私は逃げます)と言っています。あなたのためにも、おそらく便利

は、あなたの代わりに私がここで尋ねた質問を参照していない

[undo lastObjectAtIndex] 
+1

'addObject:'の行は '[masking addObject:[NSMutableArray array]]'のようなファクトリメソッドを持つ自動解放された配列に変更することができます – Eimantas

+0

ループ内に自動解放オブジェクトを使うべきではありません。 - [newArray mutableCopy]を使用します。代わりにループに入る前にNSMutableArrayを作成してから、array - [removeAllObjects];を使用する前にNSMutableArrayを作成してください。それから、任意のオブジェクトを追加するか(そのまま残して)、 - [masking addObject:[temp mutableCopy]];を介して親コレクションに追加します。 –