NSMutableArray insert 注意事項


NSMutableArray insertObject: atIndex: 時,新增的object一律會在index的左邊出現

比如說 我有 0 1 2 3 4 這四個東西
我下了[testAray insertObject:@"New1" atIndex:0];
New1會出現在0 的位置,所有東西都會往右shift

有趣的地方來了,我現在有5個東西分別是在0 1 2 3 4 這幾個index
我要在最後面add一個Object
需要下[testAray insertObject:@"New3" atIndex:5] 這種指令,
可是我在加入前去access index 5 就會掛掉

慎用insert阿!

茲附上實驗小程式來紀念這個下午

    NSMutableArray *testAray = [[NSMutableArray alloc]init];
    [testAray addObject:@"firstObj"];
    
    [testAray insertObject:@"New1" atIndex:0];
    [testAray insertObject:@"New2" atIndex:0];
    [testAray insertObject:@"New3" atIndex:[testAray count]];
    [testAray insertObject:@"New4" atIndex:[testAray count]];
//    NSLog(@"%@",[testAray objectAtIndex:[testAray count]]); //打開會掛
    
    NSLog(@"%@ count = %d",testAray,[testAray count]);



結果如下

    (
    New2,
    New1,
    firstObj,
    New3,
    New4
) count = 5



沒有留言: