NSMutableArrayは可変な配列です。
値が変わらない場合はNSArrayを使います。NSArrayと一緒でオブジェクトしか入りません。
[A,B,C]みたいな並びのNSMutableArrayのAを消すとつめられて[B,C]になります。
数字を扱う場合はintじゃ入りません。プリミティブなintはオブジェクトじゃないからです。
NSNumber *number = [NSNumber numberWithInt:1];
みたいにintをNSNumberオブジェクトに変換すると配列に入ります。
NSMutableArrayのメソッド
メソッド名 | 用例 |
---|---|
– (void) addObject:(id) |
配列にオブジェクトを加えます。[array addObject:@"ほげ"]; ほげという文字列を加えました。 |
– (void) exchangeObjectAtIndex:(NSUInteger) withObjectAtIndex:(NSUInteger) |
配列の要素と要素を入れ替えます。[array exchangeObjectAtIndex:0 withObjectAtIndex:2]; インデックスの0番と2番を入れ替えました。 |
生成
ヘッダに宣言
@property (strong, retain) NSMutableArray * titleArray;
メタで生成
//空の配列を生成
self.titleArray = [NSMutableArray array];
あるいは、
メタのみで生成
// 空の配列を生成
NSMutableArray * titleArray = [NSMutableArray array];
配列へ追加
addObjectを使うと配列の後ろに新しいオブジェクトを追加できます。
NSMutableArray * titleArray = [NSMutableArray array];
// 文字列を追加
[titleArray addObject:@"hoge"];
[titleArray addObject:@"huga"];
// 数字の100を追加
[titleArray addObject:[NSNumber numberWithInt:100]];
// 配列の中身
$0 = 0x089bb6b0 <__NSArrayM 0x89bb6b0>(
hoge,
huga,
100
)
配列から削除
インデックス番号を指定して削除する
NSMutableArray * titleArray = [NSMutableArray array];
[titleArray addObject:@"hoge"];
[titleArray addObject:@"huga"];
[titleArray addObject:[NSNumber numberWithInt:100]];
// 配列の2番目を削除
[titleArray removeObjectAtIndex:1];
// 配列の中身
$0 = 0x08928530 <__NSArrayM 0x8928530>(
hoge,
100
)
1と指定したので2番目が消え、つめられて3番目の100が2番目に来ています。
0と指定すれば配列の最初のオブジェクトが消えます。
配列の中身をすべて削除
removeAllObjectsを使います。
NSMutableArray * titleArray = [NSMutableArray array];
[titleArray addObject:@"hoge"];
[titleArray addObject:@"huga"];
[titleArray addObject:[NSNumber numberWithInt:100]];
// 配列の中身を全て削除
[titleArray removeAllObjects];
// 配列の中身
$0 = 0x07189c70 <__NSArrayM 0x7189c70>(
)
配列の中身を置換
replaceObjectAtIndexを使います
NSMutableArray * titleArray = [NSMutableArray array];
[titleArray addObject:@"hoge"];
[titleArray addObject:@"huga"];
[titleArray addObject:[NSNumber numberWithInt:100]];
// 2番目をpiyoに置換
[titleArray replaceObjectAtIndex:1 withObject:@"piyo"];
// 配列の中身
$0 = 0x071a9260 <__NSArrayM 0x71a9260>(
hoge,
piyo,
100
)
hugaがpiyoに置換されました
配列を連結
addObjectsFromArrayを使います
NSMutableArray * titleArray = [NSMutableArray array];
// 文字列を追加
[titleArray addObject:@"hoge"];
[titleArray addObject:@"huga"];
NSMutableArray * descArray = [NSMutableArray array];
[descArray addObject:@"piyo"];
[descArray addObject:@"ponyo"];
[titleArray addObjectsFromArray:descArray];
NSLog(@"配列を連結したよ: %@", titleArray);
// 出力
配列を連結したよ: (
hoge,
huga,
piyo,
ponyo
)
NSMutableArrayが連結されました