辞書のvalueからvalueを選ぶには?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mokopoko

辞書のvalueからvalueを選ぶには?

#1

投稿記事 by mokopoko » 12年前

いつもお世話になっております。plistの読み込みで分からないところがあるので質問させていただきます。xcodeでプログラミングを作っています。
次の内容のplistを作成しました。

コード:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>英単語</key>
		<string>speech</string>
		<key>品詞</key>
		<string>[名]</string>
		<key>日本語</key>
		<string>スピーチ</string>
		<key>単元</key>
		<string>その1</string>/*その1のみとりだした*/
		<key>ページ</key>
		<string>1</string>
	</dict>
	<dict>
		<key>英単語</key>
		<string>game</string>
		<key>品詞</key>
		<string>[名]</string>
		<key>日本語</key>
		<string>ゲーム</string>
		<key>単元</key>
		<string>その1</string>//その1のみとりだした
		<key>ページ</key>
		<string>1</string>
	</dict>
	<dict>
		<key>英単語</key>
		<string>ice hockey</string>
		<key>品詞</key>
		<string>[名]</string>
		<key>日本語</key>
		<string>アイスホッケー</string>
		<key>単元</key>
		<string>その1</string>
		<key>ページ</key>
		<string>1</string>
	</dict>
	<dict>
		<key>英単語</key>
		<string>jersey</string>
		<key>品詞</key>
		<string>[名]</string>
		<key>日本語</key>
		<string>ジャージ</string>
		<key>単元</key>
		<string>その2</string>
		<key>ページ</key>
		<string>1</string>
	</dict>
	<dict>
		<key>英単語</key>
		<string>give</string>
		<key>発音</key>
		<string>[ギヴ]</string>
		<key>品詞</key>
		<string>[動]</string>
		<key>日本語</key>
		<string>…を与える.…をおくる</string>
		<key>単元</key>
		<string>その2</string>
		<key>ページ</key>
		<string>1</string>
	</dict>
</array>
</plist>
私は、2つのことがしたいです。

★★1つ目
この中から値である<string>[動]</string>を選んで、<string>give</string>を取り出す。
つまり、値から値を選ぶにはどうすればよいのでしょうか?

★★2つ目
この中から<key>[単元]</key>のvalueが同じものを選び、単元が同じkeyとvalueを持つ、新たなdictionaryを作成する。
(上記のcodeが下記のcodeになります)

同じkeyを持つ新たなdictionaryなら、すぐにできたのですが、同じvalueを持つあらたな辞書がなかなかできません。
恐縮ですがよろしくお願いします。

コード:

<dict>
		<key>英単語</key>
		<string>speech</string>
		<key>品詞</key>
		<string>[名]</string>
		<key>日本語</key>
		<string>スピーチ</string>
		<key>単元</key>
		<string>その1</string>//その1のみの新たな辞書
		<key>ページ</key>
		<string>1</string>
	</dict>
	<dict>
		<key>英単語</key>
		<string>game</string>
		<key>品詞</key>
		<string>[名]</string>
		<key>日本語</key>
		<string>ゲーム</string>
		<key>単元</key>
		<string>その1</string>
		<key>ページ</key>
		<string>1</string>
	</dict>
	<dict>
		<key>英単語</key>
		<string>ice hockey</string>
		<key>品詞</key>
		<string>[名]</string>
		<key>日本語</key>
		<string>アイスホッケー</string>
		<key>単元</key>
		<string>その1</string>
		<key>ページ</key>
		<string>1</string>
	</dict>

mokopoko

Re: 辞書のvalueからvalueを選ぶには?

#2

投稿記事 by mokopoko » 12年前

その後、考え直して
つぎのようにするとうまくいきました。どうもお世話になりました。次回もよろしくお願いします。

コード:

for (int i = 0; i < 5 ; i++) {
        if ([unit isEqualToString:(NSString*)[[_items objectAtIndex:i] objectForKey:@"単元"]]) {
            NSString* hinshi = [[_items objectAtIndex:i] objectForKey:@"品詞"];
            NSString* eitango = [[_items objectAtIndex:i] objectForKey:@"英単語"];
            NSString* nihongo = [[_items objectAtIndex:i] objectForKey:@"日本語"];
            [array addObject:eitango];
            [array2 addObject:nihongo];
        }
        
    }

閉鎖

“C言語何でも質問掲示板” へ戻る