1. ホーム
  2. アイオス

[解決済み】辞書を反復処理する方法はありますか?

2022-04-09 06:29:54

質問

知っている NSDictionaries が必要なものとして key を取得するために value . しかし、どのようにすればすべての keysvalues の中に NSDictionary どのようなキーがあり、どのような値があるのかがわかるように?というものがあるのは知っています。 フォアインループ JavaScript . に似たようなものがありますか? Objective-C ?

解決方法は?

はい。 NSDictionary は高速な列挙をサポートしています。Objective-C 2.0では、このようなことが可能です。

// To print out all key-value pairs in the NSDictionary myDict
for(id key in myDict)
    NSLog(@"key=%@ value=%@", key, [myDict objectForKey:key]);

別の方法(Mac OS X 10.5以前をターゲットにしている場合は使わざるを得ないが、10.5やiPhoneではまだ使える)は、以下のように NSEnumerator :

NSEnumerator *enumerator = [myDict keyEnumerator];
id key;
// extra parens to suppress warning about using = instead of ==
while((key = [enumerator nextObject]))
    NSLog(@"key=%@ value=%@", key, [myDict objectForKey:key]);