-2

私のアプリケーションでは、ユーザーからの入力を取得して保存し、NSMutableDictionary結果を正常に取得します。

しかし、私はコンソールの出力印刷について少し混乱しています。順番に並んでいません

この出力の背後にある理由は何ですか?

ありがとう

ここに画像の説明を入力してください

次のコードを使用して、textFieldからの入力を保存し、コンソールに出力します。

-(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]);

}
}

そして、コンソールの出力は

ここに画像の説明を入力してください

4

2 に答える 2

1

それは順調ではありません。この出力の背後にある理由は何ですか?

NSDictionary入れたものの順序を維持しNSMutableDictionaryないでください。辞書を列挙したときに得られる順序は未定義です。

于 2012-08-07T11:18:04.073 に答える
0

ワトソンが言ったように、「辞書は順序付けられていません」。キー値に応じて独自のロジックを作成できます。

詳細についてはhttps://developer.apple.com/library/mac/#documentation/cocoa/Reference/Foundation/Classes/NSDictionary_Class/Reference/Reference.html

于 2012-08-09T04:25:59.657 に答える