2012-04-18 6 views
0

単語が別の単語のパターンと一致するたびに、辞書内に保持されている配列に文字列を追加する必要があります。下の2行目(setObject)は、追加する代わりに上書きされます。
最終結果は、キー(パターン)がそのパターンに適合する多くの文字列を識別する辞書内の配列でなければなりません。NSMutableDictionaryのNSMutableArrayに文字列を追加する

NSMutableDictionary *eqClasses = [[NSMutableDictionary alloc] init]; 
    [eqClasses setObject:tempWordStr forKey:wordPattern]; 

追加する簡単な方法はありますか?

答えて

1

はこれを試してみてください:

NSMutableArray* array = [eqClasses objectForKey:wordPattern]; 
if(!array) { 
    // create new array and add to dictionary if wordPattern not found 
    array = [NSMutableArray array]; 
    [eqClasses setObject:array forKey:wordPattern]; 
} 
[array addObject:tempWordStr]; 
+0

非常に役に立ちました - ありがとうございます。そして、この配列は辞書に反復的にどのように追加されますか? (私の目標は、何千もの配列を持つ辞書で、各配列はキーにwordpatternを使用し、新しい配列は動的に追加され、新しい文字列は動的に追加されます) – user1278974

+0

配列はすでに辞書に入っています。終わり – Felix

+1

私が意味するところは、ループは(ワードパターンに基づいて)配列を追加し、この配列に文字列を追加する必要があるということです。したがって、配列は既に追加されている場合とされていない場合があります。コードがどのように見えるか1.配列が存在するかどうかを確認する(wordpatternによる)2.新しい配列を追加するかどうかを指定し、新しい文字列を配列に追加する。 (私は客観的なCに新しいです) – user1278974

0

あなたは辞書内の値が配列であることを示しますが、eqClassesはNSStrings(tempWordStr)が含まれてようにそれは私には見えます。 NSArrayを作成してキーワードに関連付けられたNSStringを保持し、辞書にキーワードに対応する値を設定する必要はありませんか?辞書にすでにキーが含まれている場合は、キーに関連付けられた配列を取得し、新しい文字列を配列に追加してから、キーを使用して配列を使用してsetObjectを呼び出す必要があります。

+0

はい、私は推測しています。私は数千の配列を動的に追加する辞書を持つ必要があり、配列は動的に何千もの文字列を追加します。各配列はワードパターン(辞書内のキー)で表され、値は実際の配列です。 – user1278974

+0

あなたの提案を説明するスニペットを含めることができますか? – user1278974

関連する問題