You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用UserDefaults判断App首次启动,确保首次启动必显示帮助视图?

解决首次启动必显帮助视图的标准方案

问题出在UserDefaults.bool(forKey:)的默认行为——当对应key不存在时(首次启动就是这情况),它会直接返回false,但我们要的是首次启动强制显示。下面是两种标准解决办法:

办法一:直接判断key是否存在

先检查UserDefaults里有没有存过这个设置项,没有就判定为首次启动,强制显示帮助视图,同时把默认值存进去:

func myFunction() {
    let defaults = UserDefaults.standard
    let settingKey = "showHelpViewInStartUp"
    
    if defaults.object(forKey: settingKey) == nil {
        // 首次启动,直接显示帮助视图
        // show help view
        
        // 把默认值设为true,后续用户可修改
        defaults.set(true, forKey: settingKey)
    } else {
        let shouldShow = defaults.bool(forKey: settingKey)
        if shouldShow {
            // show help view
        }
    }
}

办法二:提前注册默认值

在App启动的早期(比如AppDelegate的didFinishLaunchingWithOptions或者SceneDelegate的willConnectTo方法里),给UserDefaults注册一个默认值,这样读取时如果没存过就会用我们设的true,而不是系统默认的false:

// 先在App启动处注册默认值
UserDefaults.standard.register(defaults: [
    "showHelpViewInStartUp": true
])

// 之后直接用原来的逻辑就行
func myFunction() {
    let shouldShow = UserDefaults.standard.bool(forKey: "showHelpViewInStartUp")
    if shouldShow {
        // show help view
    }
}

两种办法怎么选

  • 办法一适合需要在首次启动时做额外操作(比如记录首次启动时间)的场景,逻辑直观,完全掌控首次启动的行为。
  • 办法二更简洁,注册默认值的操作不会改动实际存储的设置,只是给未设置过的key补个默认值,用户后续修改后会优先用用户设置的值。

内容的提问来源于stack exchange,提问作者swiftPunk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:05:22