私の現在のiPhoneプロジェクトでは、サブ辞書を「名前」キーの最初の文字でグループ化した辞書を作成しました。 NSLogは以下を返します。最初の文字キーの下に「名前」キーしか表示されていない同じ辞書を作成したいと思います。サブディクショナリ内のいくつかのアイテムのコピーを作成する最善の方法は何ですか? ObjectForKeyメソッドは、最初の文字(例: "B"または "C")の項目のみを選択します。私がこれを明確に説明していないかどうか教えてください。 ありがとう!複数のサブ辞書を含む辞書をコピーし、サブ辞書から特定のキーのみを返す
sectionedDictionaryByFirstLetter:{
B = (
{
Name = "B...A Name Starting with B";
Image = "ImageName1.png";
Text = "Some Text";
}
);
C = (
{
Name = "C...A Name Starting with C";
Image = "ImageName2.png";
Text = "Some Text";
}
);
N = (
{
Name = "N...A Name Starting with N";
Image = "ImageName3.png";
Text = "Some Text";
},
{
Name = "N...A Name Starting with N";
Image = "ImageName4.png";
Text = "Some Text";
},
{
Name = "N...A Name Starting with N";
Image = "ImageName5.png";
Text = "Some Text";
}
);
}
私が探している最終的な結果は次のとおりです。
sectionedDictionaryByFirstLetter:{
B = (
{
Name = "B...A Name Starting with B";
}
);
C = (
{
Name = "C...A Name Starting with C";
}
);
N = (
{
Name = "N...A Name Starting with N";
},
{
Name = "N...A Name Starting with N";
},
{
Name = "N...A Name Starting with N";
}
);
}
私はいつもキー列挙子は無駄だと思っていました。これは、一般的には、キーを反復し、後で各値を「検索」操作として取得することを意味します。 –
助けてくれてありがとう。私は小さなタイプミスを見つけました:objectWithKeyはobjectForKeyでなければなりません。 また、配列はどこにnewDictに追加されますか? ありがとう! – Jonah
これは、私がそれを動作させるために終わったものです: NSString * name = [entry objectForKey:@ "Name"]; [newList addObject:[NSDictionary dictionaryWithObject:name forKey:@ "Name"]]; NSString * afirstLetterString = [name substringToIndex:1]; [newDict setObject:newList forKey:afirstLetterString]; – Jonah