현재 나의 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";
}
);
}
저는 항상 키 - 열거 자 (enumerator)가 낭비라고 생각했습니다. 일반적으로 키를 반복하고 나중에 각 값을 "검색"작업으로 사용합니다. –
도움에 감사드립니다. 작은 오타를 발견했습니다. objectWithKey는 objectForKey 여야합니다. 또한 newDict에 배열이 추가됩니까? 감사합니다. – Jonah
다음은 작동하게하기 위해 끝낸 것입니다. NSString * name = [entryObjectForKey : @ "Name"]; [newList addObject : [NSDictionary dictionaryWithObject : name forKey : @ "Name"]]]; NSString * afirstLetterString = [name substringToIndex : 1]; [newDict setObject : 새 목록 forKey : afirstLetterString]; – Jonah