在我当前的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";
}
);
}
我一直认为钥匙查点员是浪费。它通常意味着 - 遍历关键字,然后将每个值作为“搜索”操作。 – 2009-08-19 18:01:13
感谢您的帮助。我发现一个小的错别字:objectWithKey应该是objectForKey。 另外,数组在哪里添加到newDict? 谢谢! – Jonah 2009-08-19 18:11:09
下面是我最终做的工作: NSString * name = [entry objectForKey:@“Name”]; [newList addObject:[NSDictionary dictionaryWithObject:name forKey:@“Name”]]; NSString * afirstLetterString = [name substringToIndex:1]; [newDict setObject:newList forKey:afirstLetterString]; – Jonah 2009-08-19 18:47:43