请教: AppStorage 的设置,怎么重置 ?
資深大佬 : ericgui 4
我在 AppStorage 里,有一个变量,值为 true,第一次点击按钮之后,就变为 false
结果每次重新 build 之后,这个值就永远为 false 了
目前只好在 emulator 里,把 app 删了,重新 run 一下
有什么办法仅仅重置 AppStorage 而不用删 app ? 谢谢
大佬有話說 (6)
结果每次重新 build 之后,这个值就永远为 false 了
目前只好在 emulator 里,把 app 删了,重新 run 一下
有什么办法仅仅重置 AppStorage 而不用删 app ? 谢谢
方案一: 设置为 State, 小量可在打包前手动改回, 如果比较重度建议设置预处理语句.
“`swift
#if DEBUG
@State …
#else
@AppStorage …
#endif
“`
方案二: 参考 Stack Overflow 的一个个曲线方案 (针对模拟器的在评论里): https://stackoverflow.com/questions/15258777/xcode-delete-application-before-running-on-device#answer-32992734
简单解释就是把 `xcrun simctl uninstall sim-udid bundle-id` 放在 build 脚本里, 每次 build 会先删掉应用.
不过这么一说就想到方案三: 给标记为 AppStorage 的变量所在 View 的 body 设置 onAppear, 类似方案一地进行预处理.
“`swift
@AppStorage …
var body: some View {
…
}
.onAppear {
#if DEBUG
… = DEBUG_VALUE
#endif
}
“`