這裏是我的代碼簡化:以一個對象了MutableArray的,並將其放置在一個新的對象
NSMutableArray* buildBlocks = [[[NSMutableArray alloc] initWithCapacity:0] retain];
Block* selectedBlock = [[[Block alloc] init] retain];
// Add several blocks to "buildBlocks"
for(int i=0; i < [buildBlocks count]; i++)
{
Block* tempBlock = [buildBlocks objectAtIndex:i];
if(tempBlock.selected)
{
// Move the block to the selected block
selectedBlock = tempBlock;
// Take the block out of the array
[buildBlocks removeObjectAtIndex:i];
}
}
// Some code later
if(selectedBlock.selected) // <---- Crashes here
{
// Do stuff
}
我要選擇的塊複製到「SelectedBlock,」刪除塊從數組中,然後再使用「SelectedBlock」。當我用這個代碼,我總是得到「EXC_BAD_ACCESS我覺得在程序釋放數據。‘SelectedBlock’它之前,我想我在做什麼錯
更新:?
感謝大家幫我解決它
Xcode只是一個IDE。與這個問題無關。 – vikingosegundo 2011-12-28 22:57:19
請注意,無條件前進('++ i'或'i ++')會導致您在刪除任何對象時跳過對象。只有在不移除物體的情況下才會提前進行。 – 2011-12-28 23:14:41