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

因为你从不alloc, copy, 或retain阻止你不应该释放它。

运行静态分析器可能有助于解决此类错误。

于 2009-11-24T01:43:34.957 回答