【问题标题】:Unable to update key values for Dictionary in NSUserDefaults无法更新 NSUserDefaults 中字典的键值
【发布时间】:2023-03-10 06:35:01
【问题描述】:

我将数据从服务器 url 保存到 nsuserdefaults 作为用户详细信息。

现在,我想更新用户详细信息的 2 个键,但我无法做到。没有变化。

这是我的代码:

  NSDictionary *user;
  NSMutableDictionary *userMut; 
  user=[[NSUserDefaults standardUserDefaults] objectForKey:@"User Detail"];
  userMut=[user mutableCopy];
  [userMut setValue:@"1" forKey:@"isMobileVerified"];
  [userMut setValue:mobileNo.text forKey:@"mobile"];

任何帮助将不胜感激!如果我做错了,请告诉我如何更新存储在 nsuserdefaults 中的字典中的键值。

【问题讨论】:

  • 你需要初始化字典..
  • 更新后您没有在 NSUSerDefaults 中设置对象

标签: ios objective-c nsdictionary nsuserdefaults


【解决方案1】:

您需要在设置值后同步您的更改:

[[NSUserDefaults standardUserDefaults] setObject:userMut forKey:@"User Detail"];
[[NSUserDefaults standardUserDefaults] synchronize];

【讨论】:

    【解决方案2】:

    当你完成使用它时尝试将值添加回来:

    [[NSUserDefaults standardUserDefaults] setObject:userMut forKey:@"User Detail"];
    

    你正在复制你的字典,然后对那个副本什么都不做

    【讨论】:

      【解决方案3】:

      您已经制作了字典的副本并对其进行了更改,这不会影响用户默认对象中的原始副本。

      将字典设置回用户默认对象应该可以解决问题:

      [[NSUserDefaults standardUserDefaults] setObject:userMut forKey:@"User Detail"];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-28
        • 2015-09-08
        • 2013-11-01
        • 1970-01-01
        • 2022-08-06
        • 1970-01-01
        • 1970-01-01
        • 2019-07-15
        相关资源
        最近更新 更多