我有我认为是一个奇怪的错误,但当然我对 iPhone 开发相对较新,所以它可能毕竟不是那么奇怪。
我有一个我正在跟踪的对象数组(NSMutableArray)(每次用户触摸按钮时都会将一个添加到数组中)我想要做的是当数组达到某个值时我添加新对象到数组的开头,然后删除数组中的最后一个对象。当我逐步执行我的代码时,一切正常,对象被删除,但随后应用程序崩溃了......当应用程序崩溃并且应用程序中还没有循环或计时器时,调试器不在任何代码行上,所以我可以'不要想其他正在运行的东西。
这是崩溃前执行的代码
if([objectArray count] > 10)
{
MyObject *objectToRemove = [[MyObject alloc] init];
objectToRemove = [objectArray objectAtIndex:10];
[objectArray removeObjectAtIndex:10];
[objectToRemove removeFromSuperview];
}
这段代码的要点是,每次用户触摸按钮时,都会将一个对象添加到屏幕并显示,然后当对象数量达到 10 并且用户再次触摸按钮时,删除添加的第一个对象,并且显示新对象。如果我注释掉 removeObjectAtIndex 行,一切都会按预期工作,但数组会继续增长。
在删除 UIview 并且应用程序的行为方式相同后,我还尝试删除该对象。如果我尝试从数组中删除不同索引处的对象(IE 3),应用程序不会崩溃,但不会给我预期的结果。但就像我说的代码运行良好,当我在执行该行之前和之后检查数组的计数时,值分别为 11 和 10。
您可以提供的任何帮助将不胜感激,
生物武器公约