私はこれらの3つのトピックに関する知識が少し遅れています:NSMutableDictionary
、、。それらを使いたいときは、開発者向けのドキュメントを読んだとしても、とても大変な気持ちになります。NSEnumerator
NSMutableSet
3つのトピックすべてについて明確に理解するためのサンプルコードはありますか?
私を助けてください。
ありがとう、マダン・モハン。
私はこれらの3つのトピックに関する知識が少し遅れています:NSMutableDictionary
、、。それらを使いたいときは、開発者向けのドキュメントを読んだとしても、とても大変な気持ちになります。NSEnumerator
NSMutableSet
3つのトピックすべてについて明確に理解するためのサンプルコードはありますか?
私を助けてください。
ありがとう、マダン・モハン。
これらを理解するための最良の方法は、あなたの以前の経験が何であるかによって異なります。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を使用してそれらを列挙するだけです。ただし、辞書の(キーではなく)オブジェクトを列挙したり、逆に配列を列挙したりするなど、より具体的なことを実行したい場合があります。これは、(通常はコレクションオブジェクトのプロパティとして定義されている)のインスタンスが役立つ場所です。NSArray
NSSet
foreach
<NSFastEnumeration>
NSEnumerator
NSEnumerator
コメントのジャスティンは、以下に準拠していると指摘しました<NSFastEnumeration>
。つまり、NSEnumerator
;の使用方法を知る必要がある可能性はほとんどありません。foreach
次のように、列挙子自体をループすることができます。
for (id object in [dogDict objectEnumerator]) {
// doing something with the object, disregarding its key
}