私のアプリケーションでは、オブジェクトを NSMutableArray に挿入したいと考えています。
NSMutableArray *test = [NSMutableArray arrayWithObjects:[NSNumber numberWithInt:1], [NSNumber numberWithInt:3], [NSNumber numberWithInt:4], nil];
[test insertObject:[NSNumber numberWithInt:2] atIndex:1];
コードの 2 行目にブレークポイントを配置すると、デバッグ領域の結果は OK です。
self = (MasterViewController *) 0x074b9cb0
test = (NSMutableArray *) 0x07462c50 @"3 objects"
[0] = (id) 0x07461f10 (int) 1
[1] = (id) 0x07473ec0 (int) 3
[2] = (id) 0x074cbd30 (int) 4
しかし、2 行目のコード行を実行すると、結果は予期しないものになります。
self = (MasterViewController *) 0x074b9cb0
test = (NSMutableArray *) 0x07462c50 @"4 objects"
[0] = (id) 0x074713f0 (int) 2
[1] = (id) 0x07473ec0 (int) 3
[2] = (id) 0x074cbd30 (int) 4
[3] = (id) 0x07461f10 (int) 1
インデックス 1 に挿入した後、最初のオブジェクト (int 1) が最後のオブジェクトになる理由、またはこのケースは iOS 6.1 のバグである理由を説明できますか?
index > 1 にオブジェクトを挿入する場合、問題はありません。