我想了解的功能,
[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-推荐答案 strong>
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/
|