Objective-C ではサイズを変更できない配列 (NSArray) と、サイズを変更できる配列 (NSMutableArray) がある。Objective-C の参考書を読むと、Array の作り方として次のようなコードが書いてある。
NSArray* array = [[NSArray alloc] init];
NSMutableArray* mutableArray = [[NSMutableArray alloc] init];
これは本当に初歩的な書き方。Objective-C 2.0 (今の iOS 開発なら、Objective-C 2.0 がデフォールトになってる) なら、もっと簡単な Array の作り方がある。
NSArray* array = @[];
Array は大きさを変えられないので、実際のコードでは次の様にデータを入れて初期化する。
NSArray* array = @[@"foo" @"bar" @"hoge"];
Array はこんなにシンプルな書き方があるのに、MutableArray にはないものか... と諦めていたら、簡単な方法を見つけた。mutableCopy を使う。
NSMutableArray* mutableArray = [@[] mutableCopy];
Array を作って mutableCopy で mutable 化する。なんとシンプルな!!
蛇足ながら初期値を持つ場合のコードは...
NSMutableArray* mutableArray = [@[@"foo" @"bar" @"hoge"] mutableCopy];
NSMutableArray はサイズ 0 のものを作って、アイテムを push していくからあまり使わないけどね。でも、シンプルな NSMutableArray の作り方は覚えておいて損はない。