gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:23:33 26 4
gpt4 key购买 nike

我想了解的功能,

[NSUserDefaults standardUserDefaults] registerDefaults:];

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

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

然后调用,

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

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

最佳答案

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com