Iphone 从NSDictionary中提取密钥/值对

Iphone 从NSDictionary中提取密钥/值对,iphone,objective-c,ios,Iphone,Objective C,Ios,是否有一种方便的方法可以从NSDictionary中同时获取密钥/值对 比如说我有一本字典,partyGuest { name = "jim"; age = 28; occupation = "astronaut"; favouriteMeal = { starter = "fish head soup"; mainCourse = "roast armadillo"; dessert = "sugar

是否有一种方便的方法可以从NSDictionary中同时获取密钥/值对

比如说我有一本字典,partyGuest

{
   name = "jim";
   age = 28;
   occupation = "astronaut";
   favouriteMeal = 
      {
         starter = "fish head soup";
         mainCourse = "roast armadillo";
         dessert = "sugar plum fairy cakes";
      }
}
我想得到其中的一个键/值对,如下所示

NSDictionary *guestFoodChoice = [partyGuest itemForKey:@"favouriteMeal"];
…并使其同时获得密钥和值

   guestFoodChoice =
{
   favouriteMeal = 
      {
         starter = "fish head soup";
         mainCourse = "roast armadillo";
         dessert = "sugar plum fairy cakes";
      }
}

似乎应该有,但我看不到明显的方法,也许我遗漏了什么?

听起来你基本上想在另一个字典中得到一个键值对的子集(可能只有一个)。如果这是正确的,那么键值编码方法
dictionaryWithValuesForKeys:
就是您想要的

NSDictionary *guestFoodChoice = [NSDictionary dictionaryWithObjectsAndKeys:[partyGuest itemForKey:@"favouriteMeal"],@"favouriteMeal",nil];
NSDictionary *guestFoodChoice = [partyGuest dictionaryWithValuesForKeys:[NSArray arrayWithObject:@"favouriteMeal"]];

听起来您基本上希望在另一个字典中获得一个包含键值对的子集(可能只是其中一个)的字典。如果这是正确的,那么键值编码方法
dictionaryWithValuesForKeys:
就是您想要的

NSDictionary *guestFoodChoice = [partyGuest dictionaryWithValuesForKeys:[NSArray arrayWithObject:@"favouriteMeal"]];

谢谢,是的,这(使用valueForKey)是我目前的工作方法,但我认为应该有一个更优雅的快捷方式。在NSDictionary上创建一个类别,在其中添加工作方法的代码,然后至少可以清理主项目中的代码(使其更具可读性)。我会调用类似于
-keyedDictionaryWithObjectForKey:
的方法,谢谢,是的,这(使用valueForKey)是我当前的工作方法,但我认为应该有一个更优雅的快捷方式。在NSDictionary上创建一个类别,在其中添加工作方法的代码,然后至少可以清理主项目中的代码(使其更具可读性)。我会调用类似于
-keyedDictionaryWithObjectForKey: