5

当我在其中设置 registerDefaults 时,application:didFinishLaunchingWithOptions:我通过应用程序设置了 NSUserDefaults 的默认值。

NSMutableDictionary *defaultsDictionary = [@{@"userHasLoggedInOnce":@NO, @"firstTimeOpeningApp":@YES} mutableCopy];

[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict];
[[NSUserDefaults standardUserDefaults] synchronize];

registerDefaults 如何存储它只设置了一次这些值,因为它每次在应用程序启动时都被调用?它是自己的值,也设置为标准用户默认值吗?如果是这样,是否可以重置默认值?

4

1 回答 1

9

注册用户默认设置为键设置默认值。因此,当应用程序第一次启动时,您不会得到 nil、0 或 false,如果是这种情况,则必须通过您的代码进行多次测试。相反,您设置了“欢迎”之类的内容。

编辑:注册域的内容不写入磁盘;您需要在每次应用程序启动时调用此方法。您可以在应用程序的 Resources 目录中放置一个 plist 文件,然后使用从该文件中读取的内容调用 registerDefaults:。(来源

正如评论所解释的,调用 registerUserDefaults 不会覆盖 savedValues,因此您可以在每次应用程序启动时安全地调用它。您可以添加一个重置按钮,您可以在其中使用 plist 中的值(默认值)覆盖用户保存的值。

于 2013-11-14T08:01:29.987 回答