• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - registerDefaults 方法设置默认值而不是实际值。?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 22:10:17 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我想了解的功能,

[NSUserDefaults standardUserDefaults] registerDefaults:];

registerDefaults 方法是否设置默认值而不是实际值。例如,假设我依次执行以下语句,

[[NSUserDefaults standardUserDefaults] setObject"1" ForKey"test"];  

然后调用,

[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys"2",@"test", nil]];  

我看到 valueForKey 测试仍然是 1 而不是 2。 有人可以让我更好地理解 registerDefaults 还是我上面的 anology 正确? 如果我的anology 是正确的,那么这是否意味着只有在没有为该特定键设置对象时才使用默认值? 提前致谢。



Best Answer-推荐答案


Does registerDefaults method set the default value and not the actual value

是的。只有当没有为该键设置特定值时,您在字典中传递给 registerDefaults: 的值才会返回给您。

当您为键 @"test" 设置值 @"1" 时,您“隐藏”了在 registerDefaults 中注册的默认值: 调用。

如果你这样做

[NSUserDefaults standardUserDefaults] registerDefaults{@"a""1", @"b""2"}, nil]];
[[NSUserDefaults standardUserDefaults] setObject"200" ForKey"b"]; // Override

然后请求键@"a"@"b"的值,你得到默认值@"1" @"a"@"200" 的具体值对于 @"b"

关于ios - registerDefaults 方法设置默认值而不是实际值。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23428005/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap