SwiftData|删除对象导致的崩溃问题记录

使用 MVVM 架构时,未及时更新 ViewModel 中的 PersistentIdentifier 数组数据,导致的 App 崩溃问题。

使用 confirmationDialog 组件,提供用户二次确认删除的功能。

在用户确认删除之后,App 会崩溃。

  • 后台数据确认删除成功
  • SwiftData 模型中的所有属性都是可选类型

问题原因分析

这个问题核心是使用 MVVM 架构导致的。

删除模型对象之后,ViewModel 中的 movieIds 数组未移除该 ID,导致访问错误。

解决方案

在 ViewModel 的 delete 方法中,先从 movieIds 中移除该 ID,再执行 mainContext.delete() 方法。