2012-06-05 123 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

相關問題