2011-09-01 117 views
0

有具有值NSUserDefault:是否可以覆盖NSUserDefault?

[[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:@"aValue"];

可以通过它的另一值覆盖?正如:

[[NSUserDefaults standardUserDefaults] setObject:@"2" forKey:@"aValue"];

如果有可能是什么利弊?

回答

2

是的,该值将被覆盖。 NSUserDefaults用于在应用程序关闭后存储信息。

当你想要(例如在游戏中)增加用户完成的关卡数量时,通常需要这样做。

我看到的唯一缺点是,如果您忘记了某个键的名称,那么当您不打算这样做时,您可能会意外地将已经存在的值写入其中。

+0

我已经开始在我的类中使用默认值创建常量字符串。然后字符串名称将填入自动完成。它使事情变得更容易记住。 – Suz

+1

我也是这样做的。我将所有的键定义为'#define KEYS_SOME_VALUE @“keyvalue”',然后当我输入'KEYS'时,我得到了所有可能键的自动完成列表 –

相关问题