1. ホーム
  2. オブジェクティブC

[解決済み】NSMutable辞書にアクセスするためのObjective-Cのfor eachループ

2022-04-16 08:10:26

質問

Objective-Cでミュータブル辞書のキーと値にアクセスするのが難しいと感じています。

例えばこんなのがあったとします。

NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];

キーと値を設定することができます。あとは、それぞれのキーと値にアクセスしたいのですが、設定されているキーの数がわかりません。

PHPでは非常に簡単で、以下のような感じです。

foreach ($xyz as $key => $value)

Objective-Cではどうなんでしょうか?

どのように解決するのですか?

for (NSString* key in xyz) {
    id value = xyz[key];
    // do stuff
}

これは、NSFastEnumerationプロトコル(10.5+とiOSで利用可能)に準拠するすべてのクラスで機能しますが NSDictionary は、値の代わりにキーを列挙できる数少ないコレクションのひとつです。そこで 高速列挙 の中で コレクション・プログラミング・トピック .

あ、でも付け加えておくと 決して コレクションを列挙している間に、コレクションを変更します。