NSMutableArray 可変な配列


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が連結されました


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です