【发布时间】:2021-10-26 16:25:17
【问题描述】:
我需要一个可选的@AppStorage String 属性(对于NavigationLink 选择,它需要可选),所以我声明了
@AppStorage("navItemSelected") var navItemSelected: String?
我需要它以非零的默认值开始,所以我尝试了:
@AppStorage("navItemSelected") var navItemSelected: String? = "default"
但这不会编译。
我也试过了:
init() {
if navItemSelected == nil { navItemSelected = "default" }
}
但这只是在应用启动时覆盖实际的持久值。
有没有办法用默认的非零值启动它,然后让它像往常一样持续存在?
【问题讨论】:
-
Optional不是 plist 类型,因此无法存储在 AppStorage 中,您需要在NavigationLink端解决此问题,例如引入内联 Binding 检查 AppStorage 的条件值。
标签: swiftui property-wrapper appstorage