2012-06-05 87 views
1

我不知道是否有一种简单的方法来实现这一点,或者我需要自己实现算法。NSDictionary包含键和值的NSArray

这是我(的NSDictionary):

{ 
    14 =   (
     "M" 
    ); 
    15 =   (
     "H" 
    ); 
    16 =   (
     "F", 
     "G" 
    ); 

而这正是我想要的(NSArray中):

 { 
     14, 
     "M", 
     15, 
     "H" 
... 
} 

进出口寻找一种简单的方法,如果我需要做的该算法我会做我自己

回答

3

你可以遍历NSDictionary,并添加键和值是这样的:

NSMutableArray *array = [NSMutableArray array]; 
    [may enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) 
    { 
     [array addObject:key]; 

     for (int i = 0; i < [obj count]; i++){ 
      [array addObject:[obj objectAtIndex:i]]; 
     } 
    }]; 
+0

我做了它的工作,它不完全是我在找的,谢谢 –

+0

@AntonioMG,我认为你需要在迭代之前对键和值进行排序,因为字典是无序的 – beryllium

+0

嗨,我修改了你的响应以使其工作!非常感谢,这真是太棒了! –

1

试试这个方法:

NSMutableArray *allObjs = [[NSMutableArray alloc] initWithArray:[d allKeys ]]; 
[allObjs addObjectsFromArray:[d allValues]]; 
+0

是要尊重键,值的顺序?我有这样的感觉,这将是一个键数组,其次是一个值数组 –

+0

不,其他答案不尊重订单 –

+0

不,唯一的顺序将是 - 键,然后值 – beryllium

相关问题