换句话说,我必须只在我的应用中的一个位置呼叫registerDefaults
(例如,当它启动时),或者我可以根据需要注册默认值吗?
如果它是附加的,当我尝试覆盖一个值时会发生什么?
例如,给出以下代码......
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"a": @1}];
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"b": @2}];
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"b": @3}];
...最终的默认词典是什么?
@{@"b": @3}
(替换)@{@"a": @1, @"b": @3}
(添加,覆盖值)@{@"a": @1, @"b": @2}
(添加,不要覆盖值)答案 0 :(得分:3)
示例:
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"a": @1}];
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"b": @2}];
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"b": @3}];
NSAssert([[NSUserDefaults standardUserDefaults] integerForKey:@"a"] == 1, @"");
NSAssert([[NSUserDefaults standardUserDefaults] integerForKey:@"b"] == 3, @"");
终极词典是:
@{@"a": @1, @"b": @3}
因此,您可以根据需要多次调用它。
将指定字典的内容添加到注册域。