Mal*_*ito 6 ios userdefaults swiftui
我目前正在努力找出正确放置 .register() 方法的位置,以设置 UserDefaults 的初始/默认值(在应用程序的每次启动时)。
这是我尝试在 Xcode 随项目生成的“App”文件中初始化它的地方:
import SwiftUI
@main
struct TestApp: App {
init() {
//Sets default values for the user defaults that have not yet been set and should not return 0/false
UserDefaults.standard.register(defaults: [
"selectedRoundLength": 1
]
)
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Run Code Online (Sandbox Code Playgroud)
然而,这似乎并没有真正起作用。有人对此有意见吗?
这init是在UIApplication设置之前调用的,因此如果您想注册默认值(可以从大字典的 plist 中完成),应该通过应用程序委托适配器来完成。
class AppDelegate: NSObject, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
// Register defaults here !!
UserDefaults.standard.register(defaults: [
"selectedRoundLength": 1
// ... other settings
]
)
return true
}
}
@main
struct TestApp: App {
@UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
950 次 |
| 最近记录: |