更新用户详细信息并将其保存到包含用户详细信息的现有字典中

时间:2016-11-03 05:23:27

标签: ios iphone nsmutabledictionary

我在ViewControllerA上有一个dicionary,我通过Segue将该字典传递给ViewController B.the detailsDictionary包含如下用户详细信息:

{
    City = abc;
    Country = Indi;
    DOB = "12/3/2016 12:00:00 AM";
    EmailID = "abc@gmail.com";
    FName = dhruv;
    LName = kumar;
    MName = Singh;
    Password = "";
    State = Chandigarh;
    UserID = "f2266e5d-c709-42fb-ad98-b75873ac2fd1";
}

现在在View Controller B上有一些texfields,用户可以使用这些texfield更新他们的详细信息并将更新的详细信息发布到server.I已使用以下代码

 -(void)textFieldDidEndEditing:(UITextField *)textField
    {
        NSInteger field = textField.tag;
        NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"fname"];

        }
        if(field ==2)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"mname"];


        }

        if(field ==3)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"lname"];
        }

        if(field ==4)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"city"];
        }

        if(field ==5)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"state"];
        }

        if(field ==6)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"country"];
        }

        if(field ==7)
        { 
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"dob"];
        }  
    }

我希望如果用户更新他们的详细信息,那么新的更新详细信息将保存在detailsDictionary中,否则如果用户没有进行任何更改detailDictionary保留以前的详细信息。但是,我无法实现这一点。我不明白我如何检查字典中的新细节,并在新细节的情况下更改值,或保留旧值以防万一。请提前帮助和感谢!

1 个答案:

答案 0 :(得分:0)

您正确地执行此操作,只需要确保密钥与用户正在更新的密钥相同,因为密钥区分大小写,因此您需要确保使用相同的密钥,就像在您的代码中一样使用小写,而键包含一些大写字母

-(void)textFieldDidEndEditing:(UITextField *)textField
    {
        NSInteger field = textField.tag;
        if(field ==1)
        {

        NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"FName"];

        }
        if(field ==2)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"MName"];


        }

        if(field ==3)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"LName"];
        }

        if(field ==4)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"City"];
        }

        if(field ==5)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"State"];
        }

        if(field ==6)
        {
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"Country"];
        }

        if(field ==7)
        { 
            NSLog(@"cell1.userDetailTextField.text %@",textField.text);
            [_detailsDictionary setObject:textField.text forKey:@"DOB"];
        }  
    }