跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教: AppStorage 的设置,怎么重置 ?
未分類
3 2 月 2021

请教: AppStorage 的设置,怎么重置 ?

请教: AppStorage 的设置,怎么重置 ?

資深大佬 : ericgui 4

我在 AppStorage 里,有一个变量,值为 true,第一次点击按钮之后,就变为 false

结果每次重新 build 之后,这个值就永远为 false 了

目前只好在 emulator 里,把 app 删了,重新 run 一下

有什么办法仅仅重置 AppStorage 而不用删 app ? 谢谢

大佬有話說 (6)

  • 資深大佬 : AllenChiangCN

    进 app info,然后 clear storage

  • 資深大佬 : AllenChiangCN

    @AllenChiangCN 不好意思,你好像说的是 iOS

  • 主 資深大佬 : ericgui

    @AllenChiangCN 是 iOS,不好意思没说清楚

  • 資深大佬 : JasonEWNL

    标记为 AppStorage 的变量本地存着, run 之后就像常规覆盖安装后持续保存的用户数据一样.

    方案一: 设置为 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 会先删掉应用.

  • 主 資深大佬 : ericgui

    @JasonEWNL 谢谢
    也就是说,其实没办法避免删除 app 这个步骤。。。。无非是手动还是用脚本命令

  • 資深大佬 : JasonEWNL

    @ericgui 是的. 因为不删除地在 Xcode 里 run 一次, 就像用户不删除应用就从 App Store 更新一样, 标记为 AppStorage 的变量存储在 UserDefaults 里, 如其他永久存储方案一样, 仅能通过用户操作 (包括删除在内) 才能修改或重置.

    不过这么一说就想到方案三: 给标记为 AppStorage 的变量所在 View 的 body 设置 onAppear, 类似方案一地进行预处理.

    “`swift
    @AppStorage …

    var body: some View {
    …
    }
    .onAppear {
    #if DEBUG
    … = DEBUG_VALUE
    #endif
    }
    “`

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具