2017-02-16 81 views
0

我確定這個問題已經在這裏被問了幾十次,但我似乎無法找到任何接近我所需的東西。正確解決這個問題我有一點問題。我需要從NSDictionary中獲得一個值,並將其放入NSArray如何從NSDictionary獲取一個值並將其移動到NSArray

NSDictionary *dictionary = @{@"ID1":@{ 
            @"mainPhone": @"<number>", 
            @"Address": @"<address>", 
            @"City": @"<Tulsa, OK>", 
            @"Date": @"1-1-2017", 
            @"Person1": @{ 
               @"First": @"<FirstName>", 
               @"Last": @"<LastName>", 
               @"Phone": @"<number>", 
               @"Email": @"[email protected]", 
               @"Birth": @"<date>", 
               @"ID": @"12345", 
            }, 
            @"Person2": @{ 
               @"First": @"<FirstName>", 
               @"Last": @"<LastName>", 
               @"Phone": @"<number>", 
               @"Email": @"[email protected]", 
               @"Birth": @"<date>", 
               @"ID": @"12345", 
           }, 
           @"ID2":@{ 
            @"mainPhone": @"<number>", 
            @"Address": @"<address>", 
            @"City": @"<Tulsa, OK>", 
            @"Date": @"1-1-2017", 
            @"Person3": @{ 
               @"First": @"<FirstName>", 
               @"Last": @"<LastName>", 
               @"Phone": @"<number>", 
               @"Email": @"[email protected]", 
               @"Birth": @"<date>", 
               @"ID": @"12345", 
            }, 
            @"Person4": @{ 
               @"First": @"<FirstName>", 
               @"Last": @"<LastName>", 
               @"Phone": @"<number>", 
               @"Email": @"[email protected]", 
               @"Birth": @"<date>", 
               @"ID": @"12345", 
           }, 
       }; 

在我的示例字典以上,我需要拿到鑰匙First第3層字典下並將其加載到一個數組。標記爲IDPerson的字典將被分配單獨的ID號碼將是唯一不會是靜態的密鑰。提前致謝。

+0

只需使用''objectForKey' [字典objectForKey:@ 「ID」] objectForKey:@ 「人」] objectForKey:@ 「第一」]]]' – bejado

+2

你也可以做到這一點'[字典valueForKeyPath: @「key1。@ specialKey.key3」]' –

+0

首先檢查您的打開和關閉大括號括號。這是對的嗎? –

回答

0

爲此,您可以循環訪問字典,然後先訪問該字典,然後通過循環訪問該字典並訪問其詳細信息。

for (NSString *key in dictionary) { 
    NSDictionary *idDic = [dictionary objectForKey:key]; 
    for (NSString *idDicKey in idDic) { 
     if ([[idDic objectForKey:idDicKey] isKindOfClass:[NSDictionary class]]) { 
      NSString *firstName = [dictionary valueForKeyPath:[NSString stringWithFormat:@"%@.%@.First",key, idDicKey]]; 
      NSLog(@"%@",firstName); 
     } 
    } 
} 
+0

您還可以使用if/else條件獲取其他鍵值,如主電話,地址,城市等。 –

相關問題