Objective-C で変更可能な辞書のキーと値にアクセスするのが少し難しいと感じています。
次のようなものがあるとします:
NSMutableDictionary *xyz=[[NSMutableDictionary alloc] init];
キーと値を設定できます。今、各キーと値にアクセスしたいのですが、設定されているキーの数がわかりません。
PHP では非常に簡単で、次のようになります。
foreach ($xyz as $key => $value)
Objective-C ではどのように可能になるのでしょうか?
ベストアンサー1
for (NSString* key in xyz) {
id value = xyz[key];
// do stuff
}
これは、NSFastEnumeration プロトコル (10.5 以降および iOS で利用可能) に準拠するすべてのクラスで機能しますが、値ではなくキーを列挙できる数少ないコレクションの 1 つです。コレクション プログラミング トピックで高速列挙NSDictionary
について読むことをお勧めします。
ああ、ただし、コレクションを列挙している間は、絶対にコレクションを変更してはいけないことも付け加えておきます。