使用 Swift 从 Settings.bundle 检索 Toggle Switch 的值 5
retrieving the value of Toggle Switch from Settings.bundle with Swift 5
let sfx : Bool = UserDefaults.standard.bool(forKey: SettingsBundleKeys.SFX)
每当代码运行时。检索到的值始终为 false。正如您在图像中看到的,默认值为 YES(在应用程序首次安装时,它应该是 true,直到用户将其更改为 NO)
struct SettingsBundleKeys {
static let Reset = "RESET_APP_KEY"
static let Music = "MUSIC_PREFERENCE"
static let SFX = "SFX_PREFERENCE"
static let BuildVersionKey = "build_preference"
static let AppVersionKey = "version_preference"
}
使用设置包时:
设置包中的“默认值”仅供 iOS 设置应用使用,绝不会供您的应用使用。
“切换开关的默认值”表示如果尚未设置 userDefault(YES
或 NO
),则将切换显示为 ON。
您需要在自己的应用程序中做一些事情,这样如果用户没有为此键选择默认值,您也将其视为是,以便它与设置包中的 'default default value' 匹配。
一种可能性是
let sfx: Bool = UserDefaults.standard.bool(forKey: SettingsBundleKeys.SFX)
您可以使用 objectForKey,这将 return 为零,然后您将知道使用 'default default' 并且可以表现得好像 YES
已被设置为值。 (这种事情可以在用户默认设置上使用 属性 包装器来实现)但是 Apple 说的是:
从 application:didFinishLaunchingWithOptions:
调用 UserDefault 的 registerDefaults
这样您的应用程序和设置应用程序就 'default defaults' 同步 - 用于未注册用户默认值的键的值 - 然后 bool(forKey: SettingsBundleKeys.SFX)
将 return YES
即使尚未为 SFX
键设置用户默认值
let sfx : Bool = UserDefaults.standard.bool(forKey: SettingsBundleKeys.SFX)
每当代码运行时。检索到的值始终为 false。正如您在图像中看到的,默认值为 YES(在应用程序首次安装时,它应该是 true,直到用户将其更改为 NO)
struct SettingsBundleKeys {
static let Reset = "RESET_APP_KEY"
static let Music = "MUSIC_PREFERENCE"
static let SFX = "SFX_PREFERENCE"
static let BuildVersionKey = "build_preference"
static let AppVersionKey = "version_preference"
}
使用设置包时:
设置包中的“默认值”仅供 iOS 设置应用使用,绝不会供您的应用使用。
“切换开关的默认值”表示如果尚未设置 userDefault(YES
或 NO
),则将切换显示为 ON。
您需要在自己的应用程序中做一些事情,这样如果用户没有为此键选择默认值,您也将其视为是,以便它与设置包中的 'default default value' 匹配。
一种可能性是
let sfx: Bool = UserDefaults.standard.bool(forKey: SettingsBundleKeys.SFX)
您可以使用 objectForKey,这将 return 为零,然后您将知道使用 'default default' 并且可以表现得好像 YES
已被设置为值。 (这种事情可以在用户默认设置上使用 属性 包装器来实现)但是 Apple 说的是:
从 application:didFinishLaunchingWithOptions:
这样您的应用程序和设置应用程序就 'default defaults' 同步 - 用于未注册用户默认值的键的值 - 然后 bool(forKey: SettingsBundleKeys.SFX)
将 return YES
即使尚未为 SFX
键设置用户默认值