廖林

廖林

SwiftData|使用 ModelActor 存在数据更新延迟问题

问题案例 在 MONO 记账中,在账单详情页面修改账单的报销状态:待报销或已报销。修改之后,报销统计数据无法正确及时的更新(有时更新,有时不更新,结果不可测)。 排查发现原因如下: 1. 在 ReimbursementView 组件中,更新报销状态时只使用 Picker 组件,未显式调用 modelContext.save() 进行手动保存。 2. 统计数据在 ReimbursementViewModel 中计算,通过调用 actor 中的方法进行计算。 和 Task.detach 无关 既然在 ReimbursementViewModel 中,通过 Task.detached 在后台调用 actor 方法执行计算任务。如果不使用 Task.detached ,该问题是否仍然存在? 经过测试,即使修改为 Task,
廖林