1

私はこれらの3つのトピックに関する知識が少し遅れています:NSMutableDictionary、、。それらを使いたいときは、開発者向けのドキュメントを読んだとしても、とても大変な気持ちになります。NSEnumeratorNSMutableSet

3つのトピックすべてについて明確に理解するためのサンプルコードはありますか?

私を助けてください。

ありがとう、マダン・モハン。

4

1 に答える 1

4

これらを理解するための最良の方法は、あなたの以前の経験が何であるかによって異なります。NSDictionaryまさにそのように聞こえます:辞書。つまり、キー(または辞書のように見出し語)が与えられると、値(または定義)を検索できます。

たとえば、この辞書は私の犬に関する情報を提供します。

KEY        VALUE
-------------------------------------------
@"name"       @"tucker"
@"species"    @"canis lupus familiaris"
@"favorite"   @"biscuits"

dogInfoその情報を含む辞書があれば、を送信[dogInfo objectForKey:@"name"]したり受信したりすることができます@"tucker"

NSDictionaryとの違いNSMutableDictionaryは、後者では初期化後に変更できることです。これにより、のようなことができます[dogInfo setObject:@"fetch" forKey:@"game"]。これは、状態の維持、参照透過性の要求のメモ化などに役立ちます。

NSSetは、いくつかの重要なビットを含む多数のオブジェクトを作成する方法です。これらのオブジェクトには定義された順序はなく、各オブジェクトは1つしか存在できません(重複はありません)。NSSet一意の順序付けられていないオブジェクトを含める必要がある場合に使用します。は、初期化後に変更(オブジェクトの追加や削除など)を可能にするNSMutableSetバリアントです。NSSet

NSEnumeratorはもう少し複雑ですが、独自のライブラリを作成している場合、古風なコーディングをしている場合、または複雑な列挙を行っている場合を除いて、通常は対処する必要はありません。のサブクラスは、、、、NSEnumeratorなどのコレクションクラスによって使用され、NSDictionaryオブジェクトを列挙できるようにします。通常、それらはすべてを実装しているため、-loopを使用してそれらを列挙するだけです。ただし、辞書の(キーではなく)オブジェクトを列挙したり、逆に配列を列挙したりするなど、より具体的なことを実行したい場合があります。これは、(通常はコレクションオブジェクトのプロパティとして定義されている)のインスタンスが役立つ場所です。NSArrayNSSetforeach<NSFastEnumeration>NSEnumerator

アップデート

NSEnumeratorコメントのジャスティンは、以下に準拠していると指摘しました<NSFastEnumeration>。つまり、NSEnumerator;の使用方法を知る必要がある可能性はほとんどありません。foreach次のように、列挙子自体をループすることができます。

for (id object in [dogDict objectEnumerator]) {
  // doing something with the object, disregarding its key
}
于 2010-12-18T07:08:18.507 に答える