我想了解的功能,
[NSUserDefaults standardUserDefaults] registerDefaults:];
registerDefaults 方法是否设置默认值而不是实际值。例如,假设我依次执行以下语句,
[[NSUserDefaults standardUserDefaults] setObject"1" ForKey"test"];
然后调用,
[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys"2",@"test", nil]];
我看到 valueForKey 测试仍然是 1 而不是 2。 有人可以让我更好地理解 registerDefaults 还是我上面的 anology 正确? 如果我的anology 是正确的,那么这是否意味着只有在没有为该特定键设置对象时才使用默认值? 提前致谢。
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/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |