0

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

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

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

4

2 に答える 2

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];
于 2012-04-18T15:50:01.460 に答える
0

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

于 2012-04-18T15:50:48.323 に答える