这里是我的代码简化:以一个对象了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