0
BOOL continueLoop;
CGPoint thePoint;   

while(continueLoop != NO)
{
    continueLoop = NO;

    thePoint = [self generateRandomLocation];

    NSMutableArray *blocks = [self getBlocksForX:thePoint.x];

    for(BlueBlock *block in blocks)
    {
        if(block.getBlockLocationY == thePoint.y)
        {
            continueLoop = YES;
        }
    }
    [blocks release];
}

これにより、Xcode ではなくインストゥルメントで実行するとクラッシュが発生します。問題を絞り込みました。このコード行がループしているときに発生します... NSMutableArray *blocks = [self getBlocksForX: thePoint.x]; このメソッドは NSMutableArray を返します。ループが実行されるたびにそれをブロックに格納し、ループの最後でそれを解放します。計測器がクラッシュする原因は何ですか?

4

1 に答える 1

3

alloccopy、またはブロックしないretainため、解放するべきではありません。

このようなエラーの場合、静的アナライザーを実行すると役立つ場合があります。

于 2009-11-24T01:43:34.957 に答える