A. 31のヌルを取得LLDB。それを見てみましょう。
これは、あなたが得るものです:
productionSchedule (dictionary with 1 kvp)
[0] @"KeyValue" : 31 elements
key = @"KeyValue"
value = array of 31 elements
…
何? のインデックスの0 ?!これは、辞書がペアのキーと値のリストとして内部的に表現されるためです。したがって、これは単にリストの最初のペアです。のは、より多くの意味的にそれを書いて、その下のキー=と値を=忘れてみましょう:
productionSchedule (dictionary with 1 kvp)
@"KeyValue" : array with 31 Elements
…
ので
productionSchedule[@"KeyValue"] // evals to an array
であなたは31個の要素を持つ配列を取得します。この配列にはインデックスでアクセスする必要があります。たとえば、この配列の最初の要素を取得したいとしましょう。 (あなたがこのレイヤーで配列を認識しなかったので、あなたは何の要素が必要なのか、あなたは言わなかった。アレイを検索したいかもしれない。
productionSchedule (dictionary with 1 kvp)
@"KeyValue" : 31 elements
[0] dictionary with 2 kvp
…
この配列の最初の要素は辞書です。
productionSchedule[@"KeyValue"][0] // evals to a dictionary
2つのkvpがあります。再度、索引付けについて忘れてください。それは辞書です:全体の構造が壊れているようだ:
productionSchedule (dictionary with 1 kvp)
@"KeyValue" : 31 elements
[0] dictionary with 2 kvp
@"Key" : @"FA50100"
…
だから@"FA50100"
を取得するには、構造
は私がこれを言ってみましょう
productionSchedule[@"KeyValue"][0][@"Key"] // evals to a dictionary
にB.を行う必要があります。どのようにそれを作成しましたか?完全な情報を持たずに、私はあなたにいくつかのアドバイスを与えるだろう:
A)のkVpと「です。KeyValue」@無意味なキーで辞書を持って、完全に無意味です。まず、それを投げ捨て、配列から始めなければなりません。
b)この配列の内部には、31個の要素があります。私はこれが本当のリストであると仮定します。しかし、これは2 kvpの辞書でモデル化されています。 (私は、この構造は、あまりにも、31個の要素の残りの部分に適用されることを前提としています。)辞書には、「キー」@この
のようなものです:「FA50100」@ 「値」@:辞書を6のkVpで
c)kvpを保持するコレクションの中にkvpを作成しました。そうするのは何ですか?
明らかに@"FA50100"
はidのようなもので、@"Value"
と呼ばれる値はこのキーのデータです。 、cが不可能な場合、あなたは単に
NSDictionary *collection = …
collection[@"FA50100"] // gets the dictionary for FA50100
d)で@"FA50100"
の値にアクセスすることができ
@"FA50100" : dictionary with 6 kvp.
理由:だから単純に配列とSTOR IDと単一の辞書でそのデータを捨てますid @"FA50100"
はリスト内で複数回出現し、配列を使用して戻り、idを6 kvpの辞書に入れます。
しかし、本当に決して、辞書の中の@ "Key"や@ "Value"のようなキーは使用しないでください。あなたは再帰的なコレクションで迷子場合のデバッグ
については
C.は、しかし、ここでは、ヒントです:ステップとクラスを取得するために、各ステップのログを作成する段階からそれを読んでください。
特定のキーはどういう意味ですか? –
私は@ "キー"に基づいて@ "値"を得る方法を意味します – user979331
あなたはあなたのyourDict [@ "yourKey"]を行うことができます –