使用 NSUserDefaults 设置一个可以在以后更改的初始值
Using NSUserDefaults to set an initial value that can be changed afterwards
我的问题与这个类似:How to detect first time app launch on an iPhone
我不完全理解答案,我的问题略有不同(Int 而非 Bool)因此我问这个问题的原因。
如何为应用程序设置一些默认值,比方说我想要变量 a = 10 和 b = 20。这些是您第一次下载并打开应用程序时设置的默认值,但用户会可以选择更改它们。更改设置后,它们需要保持原样,每次打开应用程序时设置都恢复为默认设置会非常烦人。我知道如何使用 NSUserDefault 来保存用户所做的更改,以便他们下次打开应用程序时使用他们的设置。但是我不知道如何设置只会在第一次打开应用程序时设置的初始值。
However I don't know how to set initial values that will only be set the very first time the app is opened.
这就是 registerDefaults:
的目的。
您使用 registerDefaults()
方法来执行此操作。您传递给 registerDefaults 的任何内容都将用作 "setting of last resort",并且仅当用户没有为该键设置其他内容时才会检查。传递给 registerDefaults 的所有内容都不会保存到磁盘,因此您只需在每次程序启动时调用它,无需检查它是否是第一次或类似的事情。
我的问题与这个类似:How to detect first time app launch on an iPhone
我不完全理解答案,我的问题略有不同(Int 而非 Bool)因此我问这个问题的原因。
如何为应用程序设置一些默认值,比方说我想要变量 a = 10 和 b = 20。这些是您第一次下载并打开应用程序时设置的默认值,但用户会可以选择更改它们。更改设置后,它们需要保持原样,每次打开应用程序时设置都恢复为默认设置会非常烦人。我知道如何使用 NSUserDefault 来保存用户所做的更改,以便他们下次打开应用程序时使用他们的设置。但是我不知道如何设置只会在第一次打开应用程序时设置的初始值。
However I don't know how to set initial values that will only be set the very first time the app is opened.
这就是 registerDefaults:
的目的。
您使用 registerDefaults()
方法来执行此操作。您传递给 registerDefaults 的任何内容都将用作 "setting of last resort",并且仅当用户没有为该键设置其他内容时才会检查。传递给 registerDefaults 的所有内容都不会保存到磁盘,因此您只需在每次程序启动时调用它,无需检查它是否是第一次或类似的事情。