渐进式编程课
SwiftUI 目录
第 14 课2026.09.18

在场景状态保存时序列化可编码的导航路径。

第 14 课:保存可编码导航路径

  • 日期:2026-09-18
  • 课程序号:第 14 课
  • 知识点:保存可编码导航路径

用途或适用场景

在场景状态保存时序列化可编码的导航路径。

核心概念

NavigationPath.codable 只有在路径元素都可编码时才有值;恢复时用 CodableRepresentation 重建路径。

最小代码或操作示例

text
if let representation = path.codable {
    let data = try JSONEncoder().encode(representation)
    let restored = try JSONDecoder().decode(NavigationPath.CodableRepresentation.self, from: data)
    path = NavigationPath(restored)
}

3~5 分钟练习

路径为空时也编码并恢复。

参考答案

空路径同样会得到可编码表示,恢复后 count 为 0。

与上一课的联系

继承上一课清空 NavigationPath;本课只增加可编码保存与恢复;完成后下一课可接入 sceneStorage。

时效校验

时效校验:2026-09-18(SwiftUI 当前 NavigationPath API)。已实际打开并核对下列官方资料;未发现本课主方案存在废弃标记。

官方参考