今回はXcodeの開発には欠かせないオブジェクト型
『NSArray』の扱い方について説明します。
C言語やJavaを使い慣れている人からすれば
Xcodeの配列型のオブジェクトは非常に使いづらいと思います。
かく言う私も使い始めた頃は、非常に扱いに困りました。
なぜなら、配列の中身を直接参照して書き換えることができないからです。
C言語など他のプログラミング言語では
vector array;
~~~//配列の追加処理
array[●] = 0;のように配列の中身を[●]で指定することで参照することができました。
しかし、Xcodeの配列型オブジェクトは中身を一度出さないと
参照することすらできません。
また、中身の取り出しには関数を用いねばならず
C言語に比べると、一手間も二手間も手間がかかります。
(なんでこんなに面倒な方法をとっているんでしょうね?)
以下がNSArray型オブジェクトで扱える関数になります。
非常に重要なので、覚えておくとコーディングが楽になります。
//arrayオブジェクトの生成
NSArray *array = [NSArray arrayWithObjects:
@"いち", @"に", @"さん", nil];
//arrayオブジェクト内に含まれる要素の数を返す
int num = [array count]; //num → 3
//arrayオブジェクト内の2番目の要素を返す
NSString *str = [array objectAtIndex:2]; //str → ”に”
//arrayオブジェクト内の最後の要素を返す
NSString *str = [array lastObject]; //str → ”さん”
//arrayオブジェクト内に『よん』が含まれているかを判別する
BOOL flag = [array containsObject:@"よん"]; //flag → NO
ちなみに、NSArray型のオブジェクトはコレクションクラスなので
一度生成すると、中身を書き換えることはできません。
書き換えたい場合は、生成し直す必要があります。
(その分、データの保守性には優れたオブジェクトなんですけどね)
そのため、NSArrayで扱うデータは、生成後変化がないものにするべきです。
例えば、製品や項目のリストなどですね。
何かと制約の多いオブジェクトですが、
使いこなせば、かなり強力なツールとなります。
次回はNSMutableArray型のオブジェクトについて
詳しく説明します。
追記:
NSMutableArrayクラスの使い方