Objective-C では NSArray を用いて配列を取り扱いますが、このクラスには並び替えを行うための機能がいくつか用意されています。 その中で、例えば、独自に定義したクラスのインスタンスを配列に格納してその並び替えを行いたいような場合に使用できるのが、sortedArrayUsingSelector: というメソッドです。 これの利用に先立って、配列に格納される独自クラスの方に、並び替えで使用するメソッドを実装しておく必要があります。 ここでは、例えば商品名 (name) と料金 (price) を保持する ItemClass というクラスがあったとします。このクラスを配列に格納したときに、料金順に並び替えを行うための compareByPrice メソッドを定義すると、次のような感じになります。 @implementation SampleClass // 独自クラスに定義する
ここまで、Objective-C 2.0の新要素として、ガベージコレクションとプロパティと取り上げてきた。今回からは3つめの要素となる、Fast Enumerationを取り上げよう。 Fast Enumerationの書き方 「配列やリストといったコレクションの、すべての要素にアクセスするにはどうしたらいいか?」というのは、プログラミングの世界では古くからある問題だ。 C言語を振り返ってみよう。C言語には配列がある。配列にアクセスする一般的な方法は、for文と添字を使うものだ。次のような書き方になるだろう。 リスト1 int array[10]; ... int i, value; for (i = 0; i < 10; i++) { // 添字を使って要素を取り出す value = array[i]; ... } このようなfor文を使った書き方は、C言語の配列では有利だ。それは、C言
NSArrayクラス Objective-Cの最も基本的な配列クラスは「NSArray」です。このクラスは、一度生成すると中身を変更することはできません。以下に、NSArrayの利用例を示します。 #import <Foundation/Foundation.h> int main(void) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //(1)配列の生成 NSArray *array = [NSArray arrayWithObjects:@"abc", @"def", @"ghi", @"jkl", nil]; //(2)配列の要素数を取得 int arrCount = [array count]; //(3)配列の要素を取り出す id obj01 = [array objectAtIndex:2]; i
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く