2010-11-27 8 views
3


私は、各キーに9つの関連オブジェクトを持つ名前(myKey)があるplistからデータを読み込む辞書 "playerDict"を持っています。配列のキーのすべてのNSDictionaryオブジェクトを読み取る方法

特定のキー(myKeys)のすべてのオブジェクトをNSMutableArray(theObjects)に読み込もうとしています。私はクラス参照を読んでインターネットを検索しましたが、これはおそらく非常に単純な問題ではありません。

私が行った他のすべてのテストの中で、私は以下を試しましたが、キーはオブジェクトではなくオブジェクトに戻ります。

theObjects = [playerDict objectForKey:myKeys];

ヒントを与えることができますか?ここで

は辞書を作成したコードがあり、私はそれを剥奪:

NSArray *objs = [NSArray arrayWithObjects:[NSNumber numberWithBool:playerObject.diffHard],[NSNumber numberWithBool:playerObject.diffMedium], 
      [NSNumber numberWithBool:playerObject.diffEasy],[NSNumber numberWithBool:playerObject.currentGame], 
      [NSNumber numberWithInt:playerObject.currentGameQuestion],[NSNumber numberWithInt:playerObject.currentGameRightAnswer], 
      [NSNumber numberWithInt:playerObject.currentGameType],[NSNumber numberWithInt:playerObject.nrOfType0Games], 
      [NSNumber numberWithInt:playerObject.type0Result], nil]; 
NSDictionary *newPlayerDict = [NSDictionary dictionaryWithObjectsAndKeys:objs, keyString, nil]; 

答えて

4

はvalueForKeyをお試しください:

+0

私は以前にvalueForKeyで何が間違っていたのか分かりませんが、今はついにそれが動作します。皆さん、大変ありがとうございます。多分私は木のためにフォレストが見えないのです:-) – PeterK

0

あなただけNSDictionaryにキーごとに1つの項目を格納することができます。同じキーに複数のアイテムを追加する必要がある場合は、最初にアイテムのそれぞれをNSArray(またはNSSet)に追加してから、辞書のオブジェクトとして設定する必要があります。

辞書が作成されたコードを投稿した場合は、Ifが役に立ちます。

更新:あなたはすでにこれをやっているようです。したがって:

NSArray *myObjs=[playerDict objectForKey:keyString]; 

あなたの配列を取得します。そして、これは:

BOOL diffHard=[[myObjs objectAtIndex:0] boolValue]; 
BOOL diffMedium=[[myObjs objectAtIndex:1] boolValue]; 

アレイの1番目と2番目のオブジェクトに格納された値を取得します。残りのためにそれを繰り返します。

関連する問題