我們試圖將對象添加到一個數組,並且當它的滿(容量= 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'的替代方法,並且不會刪除任何元素。 –