如何在每次应用 运行 时更改 NSUserDefault 的默认 return 值而不保存它

How to change the default return value of an NSUserDefault without saving it every time the app is run

我正在使用 Bool UserDefault,我最初希望将其 return 作为 true,除非在应用程序的其他地方进行了更改。 不幸的是,UserDefault.bool(forKey:) returns false 除非另有说明。我会在 viewDidLoad() 中将其设置为等于 true,但这会导致每次加载该屏幕时都会重置它。

如何将初始默认值 return 更改为 true 而不是 swift 中的 false

请尽可能使用swift。

你问的不是很清楚。您是在问如何做到这一点,以便在首次安装您的应用程序时 运行,您的 BOOL 加载值为真?

答案是使用 registerDefaults() 方法(正如 Martin R 在他的评论中提到的)。

您将一个 NSDictionary 传递给它,其中包含您要加载为“默认值”的 key/value 对。执行此操作的最佳位置是在应用委托的初始化 class 方法中。这样,在您的任何应用程序其他代码获取 运行.

之前设置默认默认键值对

因此将此方法添加到您的应用程序委托中:

class func initialize()
{
  NSUserDefaults.standardUserDefaults().registerDefaults(
    ["myDefault": true,
     "aStringDefault": "defaultStringValue"],
     "arrayDefault": [1, 2, 3,])
  //Do any other startup initialization that needs to happen 
  //before all your other app delegate code.
}

(未测试。可能需要稍作改动才能工作...)

编辑:

你可以注册任意多的默认值,也可以在默认值中写入更复杂的结构。我更新了示例代码以显示更复杂的示例)