我们试图将对象添加到一个数组,并且当它的满(容量= 10),前移的所有值和擦除所述第一(例如移位寄存器)数组beyod边界?
我正在试图做下和它总是在10以后崩溃,因为9超越了8 .. ..
if (count>9)
{
for(count=0;count<9;count++)
{
NSLog(@"%@",listOfEvents);
[listOfEvents removeObjectAtIndex:count];
[listOfEvents insertObject:[listOfEvents objectAtIndex:(count+1)] atIndex:count];
}
[listOfEvents removeObjectAtIndex:9];
[listOfEvents insertObject:event atIndex: 9];
}
else
[listOfEvents addObject:event];
count++;
当我尝试不删除对象,我得到另一个错误。 我做错了什么? 为什么我不能为某些索引添加值,当有空间索引时呢? ? 非常感谢。
非常感谢,我明白,但为什么它没有约束?我的数组绑定是10,所以索引是0-9!我只是无法理解这种约束的事情。另外,即使我超越界限,他必须自动放大我的阵列否? – Curnelious
无论何时添加或删除元素,“NSMutableArrays”都会调整它们的大小。当大小调整时,可接受指数的范围也是如此。 – Dirk
@Dirk:谢谢。 @Rant:所以它可能是* count将元素从'count + 1'复制到'count'的替代方法,并且不会删除任何元素。 –