他の回答が指摘しているように、単にinsertObject:atIndex
方法。 NSArrayは必ずしも連続したメモリで構成されているわけではないため効率的です。つまり、特に大きな配列、つまり数十万個の要素に対して挿入が行われたときに要素が常に移動するわけではありません。 このブログ を参照してください。ObjectiveCでは、コピーを作成する必要があるC++とは異なり、memmmoveを内部で使用できるように、ポインターのみが配列内で移動されることに注意してください。
また、 このSEの質問 。