2012-08-07 47 views
-2

在我的應用程序中,我從用戶那裏獲取輸入並將其存儲在NSMutableDictionary中,併成功獲取結果。NSMutableDictionary問題

但我對控制檯輸出打印有點困惑。 這不是訂單

這個輸出背後的原因是什麼?

感謝

enter image description here

我用下面的代碼從文本字段存儲輸入並將其打印在控制檯。

-(IBAction)doneButtonClicked:(id)sender 
{ 
NSArray *arr=[NSArray arrayWithObjects:@"firstName",@"middleName",@"lastName",@"address",@"email",@"phone",nil]; 

DataClass *obj=[DataClass getInstance]; 

obj.personelInfo=[NSMutableDictionary dictionary]; 

for (int a=1; a<=personelInfoCounter; a++) { 


    UITextField *textField = (UITextField*)[self.view viewWithTag:a]; 




    NSString *fieldValue = textField.text; 


    if(fieldValue != nil) 
    { 
    [obj.personelInfo setObject:fieldValue forKey:[arr objectAtIndex:a-1]]; 
    } 
    else 
    { 
     [obj.personelInfo setObject:@"" forKey:[arr objectAtIndex:a-1]]; 
    } 

} 



NSLog(@"Final value of Personal Info Dictionary is ----------------------------------:"); 

for (id key in obj.personelInfo) { 

    NSLog(@"%@  ,  %@", key, [obj.personelInfo objectForKey:key]); 

} 
} 

而且在控制檯輸出

enter image description here

+6

字典不下令,我wouldnt指望它在任何邏輯順序 – wattson12 2012-08-07 11:17:01

+0

打印@ wattson12感謝。每次我們運行程序時,它可能會給出不同的順序? – QueueOverFlow 2012-08-07 11:18:28

+0

正確,如果您依賴於值的順序,您將需要在訪問值時對鍵進行排序 – wattson12 2012-08-07 11:21:57

回答

1

它不是爲了。這個輸出背後的原因是什麼?

NSDictionaryNSMutableDictionary不保持你把他們的事情的順序。它是不明確的,當你枚舉一個字典時你會得到什麼樣的順序。