Objective-C 基礎(11)- Objective-Cの連想配列




§1 Objective-Cの連想配列(ディクショナリ)

配列には、インデックスを使って値を管理する「通常配列」と、一意のキーワードを使って値を管理する「連想配列」があります。

Objective-Cでは通常配列を扱う場合はNSArrayクラスとNSMutableArrayクラスを使用しますが、連想配列を扱う場合はNSDictionaryクラスとNSMutableDictionaryクラスを使用します。また、Objective-Cでは連想配列のことを「ディクショナリ」と呼びます。

NSDictionaryクラスは配列の内容が変更できないのに対してNSMutableDictionaryクラスは配列の内容を変更することができます。

[NSDictionaryクラスの使用方法]
●値とキーをセット(値, キー, 値, キー…)で指定してディクショナリを生成する
dictionaryWithObjectsAndKeysメソッドにて値とキーのセットをカンマ区切りで指定しています。Objective-Cの配列・ディクショナリにはオブジェクトしかセットできないため、以下では数値をNSNumberのオブジェクトを作ってセットしています。

●値とキーの配列を、それぞれ生成し、それを引数に指定してディクショナリを生成する
値の配列とキーの配列を生成し、それぞれの配列をdictionaryWithObjects:forKeysメソッドに指定しています。

●キーを指定してディクショナリの要素を取り出す

●ディクショナリの要素数を取得する
countメソッドによりディクショナリの要素数を取得することができます。

●2つのディクショナリを比較する
isEqualToDictionaryメソッドにディクショナリを渡して、2つのディクショナリの中身が同一かどうかを判定しています。キーと値の組み合わせがすべて一致していれば同一となります。結果はtrueまたはfalseが返ります。

[NSMutableDictionary クラスの使用方法]
NSMutableDictionaryはNSDictionaryのサブクラスなので、ディクショナリの生成、ディクショナリ要素数の取得、ディクショナリ要素の取り出しなどの基本的な処理はすべてNSDictionaryのメソッドを使うことができます。NSArrayに対するNSMutableArrayと同様です。

●値とキーをセット(値, キー, 値, キー……)で指定して可変のディクショナリを生成する

●値とキーの配列を、それぞれ生成し、それを引数に指定して可変のディクショナリを生成する

●キーを指定してディクショナリの要素を取り出す

●ディクショナリの要素数を取得する

●空の可変ディクショナリを生成する

●ディクショナリの要素をセットする
setObject:forKey:メソッドでキーを指定してオブジェクトをセットしています。新規に追加する場合、既存のキーの値を変更する場合もこのメソッドを使用します。

●ディクショナリの要素を削除する
removeObjectForKeyメソッドにてディクショナリの要素を削除しています。キーを一つ指定するか、キーの配列を指定する方法があります。

removeAllObjectsメソッドを使用すると全ての要素を削除することができます。

●ディクショナリから要素を追加する
addEntriesFromDictionaryメソッドにて別のディクショナリから要素を追加しています。2つのディクショナリに同一のキーが存在した場合、追加するほうのディクショナリ要素で上書きされます。

Objective-C 基礎 目次

以下の記事も参考にして頂ければと思います。
Objective-C 基礎(1)- Xcodeのインストールとプロジェクトの作成
Objective-C 基礎(2)- Objective-Cの概要とメソッドの呼び出し
Objective-C 基礎(3)- クラス定義の方法
Objective-C 基礎(4)- クラスの使い方
Objective-C 基礎(5)- クラスメソッドとインスタンスメソッド
Objective-C 基礎(6)- 変数のスコープとプロパティ
Objective-C 基礎(7)- 変数のデータ型
Objective-C 基礎(8)- 文字列とNSStringクラス
Objective-C 基礎(9)- 可変文字列とNSMutableStringクラス
Objective-C 基礎(10)- Objective-Cの配列
Objective-C 基礎(11)- Objective-Cの連想配列
Objective-C 基礎(12)- ループ処理
Objective-C 基礎(13)- プロトコル


シェアして頂けると嬉しいです

















チャーム本店



価格.com ブロードバンド

価格.com 自動車保険









■コメントはお気軽にどうぞ