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

Swift中static静态变量的生命周期是怎样的?附iOS控制器场景疑问

答案

  1. 创建生效时机:hasSeenTheLightOfDay 是属于 ViewControllerB 类本身的静态存储属性,遵循Swift线程安全懒加载规则,会在ViewControllerB类第一次被访问(包括实例化该类、访问该类的任意静态成员)时完成初始化,默认值false同步生效。
  2. 销毁失效时机:该静态变量的生命周期和应用进程完全绑定,只要应用进程没有彻底终止(包括后台挂起未被系统回收的状态),它就会一直存在。只有当应用进程完全结束(用户手动杀掉App、系统因内存不足回收App进程)时,它才会被销毁失效,和ViewControllerB的实例是否被释放没有任何关联。
  3. 多次进出的数值变化:第一次进入ViewControllerB时,viewDidLoad执行会把变量赋值为true。后续不管多少次重复进入、退出ViewControllerB,哪怕ViewControllerB的实例被完全释放,静态变量也不会被重置,因此数值会一直保持true,不会来回变化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:06:03