如何重新设置字典的用户默认值

How to set again user default for dictionary

如何再次将用户默认设置为字典。

创建字典对象并为其设置值。

NSMutableDictionary * loginDictionary = [[NSMutableDictionary  alloc] init];
[loginDictionary setValue:@"My Address" forKey:@"ADDRESS_KEY"];
 [loginDictionary setValue:@"1234567890" forKey:@"PHONE_KEY"];
    [[NSUserDefaults standardUserDefaults] setObject:newDictionary forKey:@"INFO_KEY"];
[[NSUserDefaults standardUserDefaults] synchronize];

现在我评估那些字典值并分配给其他一些对象。

    NSDictionary *RetrievedDictionary = [[NSUserDefaults standardUserDefaults] dictionaryForKey:@"INFO_KEY"];
  txt_Address.text = [RetrievedDictionary objectForKey:@"ADDRESS_KEY"];
  txt_Mobile.text = [RetrievedDictionary objectForKey:@"PHONE_KEY"];

如何更新?
这是我尝试的。

 [[NSUserDefaults standardUserDefaults] setObject:@"Changed Address" forKey:@"ADDRESS_KEY"];
[[NSUserDefaults standardUserDefaults] setObject:@"0987654321" forKey:@"PHONE_KEY"];
    [[NSUserDefaults standardUserDefaults] synchronize];

它对我不起作用,需要你的小建议我做错了什么。 @提前致谢。

 NSMutableDictionary* changedDictionary = [NSMutableDictionary dictionaryWithDictionary:[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"INFO_KEY"]];
 [changedDictionary setObject:@"Changed Address" forKey:@"ADDRESS_KEY"];
 [changedDictionary setObject:@"0987654321" forKey:@"PHONE_KEY"];
 [[NSUserDefaults standardUserDefaults] setObject:changedDictionary forKey:@"INFO_KEY"];
 [[NSUserDefaults standardUserDefaults] synchronize];
NSMutableDictionary * loginDictionary = [[NSMutableDictionary alloc] init];
[loginDictionary setValue:@"My Address" forKey:@"ADDRESS_KEY"];
[loginDictionary setValue:@"1234567890" forKey:@"PHONE_KEY"];
[[NSUserDefaults standardUserDefaults] setObject:newDictionary forKey:@"INFO_KEY"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

您正在创建 loginDictionary,但将 newDictionary 添加到 NSUserDefaults。我也建议使用常量键。

这个怎么样?

 NSMutableDictionary *changedDictionary = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:@"INFO_KEY"] mutableCopy];
 [changedDictionary setObject:txt_Address.text forKey:@"ADDRESS_KEY"];
 [changedDictionary setObject:txt_Mobile.text forKey:@"PHONE_KEY"];
 [[NSUserDefaults standardUserDefaults] setObject:changedDictionary forKey:@"INFO_KEY"];
 [[NSUserDefaults standardUserDefaults] synchronize];