news 2026/6/23 18:29:39

swift中使用ObservableObject单利模式的时候,用let 或 @ObservedObject 或 @StateObject 有什么区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
swift中使用ObservableObject单利模式的时候,用let 或 @ObservedObject 或 @StateObject 有什么区别

使用let(简单引用)

struct ContentView: View { let gameManager = GameManager.shared var body: some View { Text(gameManager.gameState.rawValue) // ❌ 不会自动更新! } }

问题:

获取的是单例的引用

但 不会触发视图更新 当 @Published 属性变化时

SwiftUI 不知道这个对象是 ObservableObject

使用@ObservedObject

struct ParentView: View { @StateObject private var manager = GameManager.shared var body: some View { ChildView(gameManager: manager) // 作为参数传递 } } struct ChildView: View { @ObservedObject var gameManager: GameManager // 从父视图接收 var body: some View { Text(gameManager.gameState.rawValue) } }

特点:

✅ 会触发视图更新 当 @Published 属性变化时

❌ 可能被重新创建 如果父视图重建

适用于:从父视图传递下来的 ObservableObject

使用@StateObject(推荐用于单例)

struct ContentView: View { @StateObject private var gameManager = GameManager.shared var body: some View { Text(gameManager.gameState.rawValue) // ✅ 会自动更新 } }

特点:

✅ 会触发视图更新

✅ 不会被意外重新创建 - SwiftUI 会保持同一个实例

✅ 生命周期与视图相同 - 但因为是单例,所以实际是全局的

最适合单例场景

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/22 20:16:15

37、TCP/IP网络故障排查与管理:案例分析及SNMP协议详解

TCP/IP网络故障排查与管理:案例分析及SNMP协议详解 1. 协议案例分析 在网络使用过程中,偶尔会出现一些故障问题。这里有一个通过协议分析解决的实际案例。有用户反馈,在通过FDDI骨干网络从工作站向中央计算机传输大文件时,偶尔会出现FTP失败的情况,错误信息如下: net…

作者头像 李华
网站建设 2026/6/22 19:03:40

50、Sendmail 配置与使用指南

Sendmail 配置与使用指南 1. 编译 Sendmail Sendmail 的源代码可通过匿名 FTP 从 ftp.sendmail.org 获取,存于 pub/sendmail 目录。下载时,需将压缩的 Sendmail tar 文件作为二进制文件下载,解压后进入 src 目录,执行 sh makesendmail 命令进行编译。不过,不同系…

作者头像 李华
网站建设 2026/6/23 0:44:31

51、sendmail.cf 配置全解析

sendmail.cf 配置全解析 在配置 sendmail.cf 文件时,会用到许多选项和标志。虽然重要的配置参数都已涵盖,但一些更晦涩的参数仍需详细了解。下面将对 sendmail 的各类配置元素进行深入剖析。 1. sendmail 类 从 sendmail V8 开始,它不仅有许多内部宏,还引入了一些…

作者头像 李华
网站建设 2026/6/22 9:12:02

2025年五大AI Wiki系统横评:从功能到场景的深度解析

在知识管理领域,Wiki系统早已从简单的文档存储工具进化为集创作、协作、智能问答于一体的知识中枢。2025年,随着AI技术的深度整合,新一代Wiki系统正在重塑企业知识管理的方式。本文将深度对比当前市场上五款主流AI Wiki系统,帮助您…

作者头像 李华
网站建设 2026/6/22 15:46:34

信创环境下的 “构建” 之痛:如何解决复杂项目依赖管理与制品库的国产化适配难题?

在信创改造的全流程中,“构建环节” 是连接研发与交付的核心枢纽,却常因依赖关系错综复杂、制品库国产化适配不足陷入效率瓶颈与合规风险。当企业将传统架构迁移至麒麟 / 统信操作系统、鲲鹏 / 飞腾芯片、达梦 / OceanBase 数据库等国产环境时&#xff0…

作者头像 李华
网站建设 2026/6/22 19:11:50

EasyGBS解锁公共场所视频监控新模式

在智慧城市建设加速推进的背景下,公共场所作为人员密集、流动性强的核心场景,其安全防控、秩序管理、应急处置需求日益严苛。视频监控作为公共场所安全保障的“眼睛”,已从传统的“事后追溯”向“事前预警、事中干预”升级。而国标GB28181算法…

作者头像 李华